Обратите внимание, что операции 'echo "$var" | command
означают, что стандартный ввод ограничен отображаемой линией.Если вы также хотите, чтобы терминал был подключен, то вам нужно быть более изощренным:
{ echo "$var"; cat - ; } | command
( echo "$var"; cat - ) | command
Это означает, что первая строка будет содержать содержимое $var
, а остальные придутс cat
чтение его стандартного ввода.Если команда не делает ничего особенного (попробуйте включить редактирование командной строки или запустить, как vim
), тогда все будет хорошо.В противном случае вам нужно по-настоящему придумать - я думаю, expect
или одно из его производных, вероятно, будет уместным.
Обозначения командной строки практически идентичны - но вторая точка с запятой необходима с фигурными скобкамитогда как это не с круглыми скобками.