Могу ли я вернуться и изменить строку, которую я повторил ранее в Bash? - PullRequest
0 голосов
/ 07 декабря 2018

Я видел, как некоторые приложения делают это, и я думаю, что это связано с curl.Можно ли сделать что-то подобное в сценарии оболочки?

Например, сделать спиннер:

[/]
[-]
[\]

Но пусть он продолжает вращаться на одной и той же линии.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете использовать escape-последовательности CSI :

CHARACTERS='- \\ - /'
echo -ne '[/]\e[2D'
while true; do
    for char in $CHARACTERS; do
        sleep 1
        echo -ne "$char\\e[1D"
    done
done

Первый эхо-сигнал записывает [/], затем перемещает курсор назад над / с помощью «CUB - Cursor Back» спараметр длины перемещения из 2 столбцов.
В цикле while мы перезаписываем средний символ каждым последующим требуемым значением, возвращаясь к нему с помощью «CUB - Cursor Back» с параметром длины перемещения из 1 столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...