Подтвердить что ты не робот

Продолжить вывод на одной строке

Хотите сделать фантастический эффект, напечатав [OK] в конце последней строки, когда задача завершена.

Получает следующее:

echo "$0: Starting backup process in '$backupdir'... " 
sleep 3
echo '[OK]'

Я пробовал разные вещи в конце первого эха, в начале второго, как \r, \c, \, Googled it... Нехорошо.

Я хочу, чтобы он выводил это:

./backup.sh: Starting backup process in '/backup'...

... И через 3 секунды добавьте [OK]:

./backup.sh: Starting backup process in '/backup'... [OK]

Спасибо,

4b9b3361

Ответ 1

Используйте параметр -n, чтобы пропустить печать новой строки в конце. Дополнительная ссылка на echo docs.

Итак, вы можете сделать что-то вроде этого:

echo -n "$0: Starting backup process in '$backupdir'... " 

Ответ 2

используйте более переносимый printf:

printf "%s" "$0: Starting backup process in '$backupdir'... "
sleep 3
printf '[OK]\n'

Ответ 3

echo -n hello