Я скопировал приведенный ниже код из некоторого случайного источника в мой терминал и запустил:
while sleep 1;
do tput sc;
tput cup 0 $(($(tput cols)-29));
date;
tput rc;
done &
Код должен показывать часы в правом верхнем углу терминала. Фрагмент сработал очень хорошо и точно сделал то, что я хотел, но теперь я просто хочу закончить этот цикл и избавиться от часов.
Кроме того, мне нужно понять приведенный выше код. У меня есть идея, так как я знаю, что tput
делает команда, но все же есть много точек, с которыми я не могу соединиться.
jobs
в своем сеансе список активных фоновых заданий, а затем вывести его на передний план, набравfg <job number>
. После нажатия Ctrl + C, чтобы остановить этот бесконечный цикл. Этот сценарий работает только в терминале, который запускает сниппет.Ответы:
Вы можете запустить
jobs
команду в своем сеансе, чтобы вывести список активных фоновых заданий, а затем поместить их на передний план, набравfg <job number>
. Затем нажмите Ctrl+, Cчтобы остановить этот бесконечный цикл.Этот сценарий работает только в терминале, который запускает сниппет.
Объяснение:
tput sc
сохранить позицию курсора.tput cup 0 $(($(tput cols)-29))
- переместить курсор в положение0
оси Y и оси(count of screen columns minus 29)
X.date
просто напечатать текущую дату.tput rc
- восстановить позицию курсора.while sleep 1; ... do ... ; done
- петля с задержкой в 1 секунду.Введите,
help while
чтобы узнать больше оwhile
цикле в оболочке, и следуйте инструкциям man 1 tput или tldp tput doc, чтобы узнать, как работает tput.источник
kill %1
(или другое число, если есть несколько рабочих мест) является альтернативойfg
+Ctrl-C