Зауважте, що " echo "$var" | commandоперації означають, що стандартне введення обмежено рядками, що відлунюються". Якщо ви також хочете, щоб термінал був підключений, вам потрібно буде бути більш прихильним:
{ echo "$var"; cat - ; } | command
( echo "$var"; cat - ) | command
Це означає, що перший рядок буде вмістом, $varа решта буде надходити з catчитання його стандартного вводу. Якщо команда не робить нічого надто фантазійного (спробуйте увімкнути редагування командного рядка або запустити так, як vimце робиться), то це буде добре. Інакше вам потрібно по-справжньому пофантазувати - я думаю, expectчи один із його похідних, ймовірно, буде доречним.
Позначення командного рядка практично ідентичні - але друге напівкрапка є необхідною для дужок, тоді як це не з дужками.
$PATH? Так щоcatможна замінити/bin/cat "$@" | tee /attacker/can/read/this/file