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

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

Получил это:

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

Я попробовал разные вещи в конце первого эха, в начале второго как \r, \c, \, Погугленный это... Отрицательный результат.

Я хочу, чтобы это произвело это:

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

... И 3 секунды спустя, добавьте [OK]:

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

Спасибо,

28
задан skaffman 30 July 2010 в 15:04
поделиться

3 ответа

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

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

echo -n "$0: Starting backup process in '$backupdir'... " 
50
ответ дан 28 November 2019 в 02:50
поделиться

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

printf "%s" "$0: Starting backup process in '$backupdir'... "
sleep 3
printf '[OK]\n'
14
ответ дан 28 November 2019 в 02:50
поделиться

echo -n hello

2
ответ дан 28 November 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: