#bash #tput
#bash #tput
Вопрос:
$ cat test.sh
#!/bin/bash
sc=$(tput sc)
rc=$(tput rc)
printf "$sc%sn" "Type word"
read -r word
printf "$rc%sn" "Type word (again)"
read -r word_confirmation
$ ./test.sh
Type word (again)
test
Я бы хотел test
, чтобы меня очистили.
Ответ №1:
tput ed
очищает экран от текущей позиции курсора до конца экрана (сломан в macOS, см. Этот ответ).
#!/bin/bash
tput sc
printf "%sn" "Type word"
read -r word
tput rc
tput ed
printf "%sn" "Type word (again)"
read -r word_confirmation
Комментарии:
1. Привет, спасибо за помощь. Приведенный выше код, похоже, не работает … весь экран очищен… не только
test
. Не могли бы вы настроить свой блок кода, чтобы расширить мой код?2. По-видимому, в macOS есть ошибка , которая ломается
tput ed
.3. Используете ли вы macOS и
tput cd
работает ли на вашем компьютере? кстати, мой вывод дляprintf '%q' "$(tput ed)"
$'E[J'
4. Я разрабатывал скрипт на macOS.
printf '%q' "$(tput ed)"
выводит''
на macOS Catalina.printf '%q' "$(tput cd)"
выходы$'33'[J
.