Нет вывода с клавиатуры на терминал после запуска скрипта с использованием read и whiptail

Ответ Фредди работает, но не имеет объяснения . Формат sed, к которому вы, вероятно, стремитесь, выглядит примерно так:

sed -n 4,6p file1.txt

Где я использовал 4и 6как фиктивные числа.

Давайте рассмотрим ваше выражение, снова используя эти фиктивные числа и команду echo.

$ var1=4
$ var2=6
$ echo "$var1,$var2'p'"
4,6'p'

Поскольку вы заключили 'в ", они интерпретируются буквально, а вы буквальные 'в команде sed. Следовательно, когда вы пытаетесь запустить свою команду:

$ sed -n "$var1,$var2'p'" file1.txt
sed: -e expression #1, char 4: unknown command: `''

Решение

Вы можете удалить 'из своего выражения, но вместо этого имя переменной изменится на $var2p. Следовательно, как предлагает Фредди, вы можете использовать {…}для явного включения имени переменной (s ). то есть

sed -n "${var1},${var2}p" file1.txt

Вы можете проверить, работает ли это, поставив эхо перед командой. Альтернативный формат:

sed -n "$var1,$var2"p file1.txt

но ИМО менее читабелен.

Наконец, как SteelDriver указывает , если вы хотите добавить в файл, используйте >> file2.txtвместо > file2.txt.

2
17.10.2021, 22:03
1 ответ

Возможно, whiptailоставляет терминал в странном состоянии. Попробуйте stty saneкак команду (, вам придется набирать ее вслепую, так что будьте осторожны ). Если это исправит терминал, то, вероятно, проблема в нем.

0
18.10.2021, 02:51

Теги

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