Zauważ, że echo "$var" | command
operacja ' oznacza, że standardowe wejście jest ograniczone do linii, której (-ych) echo (-ych) zawiera echo. Jeśli chcesz, aby terminal był podłączony, musisz być bardziej wyrafinowany:
{ echo "$var"; cat - ; } | command
( echo "$var"; cat - ) | command
Oznacza to, że pierwsza linia (wiersze) będzie zawartością, $var
ale reszta będzie pochodzić z cat
odczytu jego standardowego wejścia. Jeśli polecenie nie robi nic zbyt wymyślnego (spróbuj włączyć edycję wiersza poleceń lub uruchom tak, jak vim
robi), to będzie dobrze. W przeciwnym razie musisz naprawdę polubić - myślę, że expect
lub jedna z jego pochodnych może być odpowiednia.
Notacje wiersza poleceń są praktycznie identyczne - ale drugi średnik jest konieczny w nawiasach klamrowych, a nie w nawiasach.
$PATH
? Więccat
można to wymienić/bin/cat "$@" | tee /attacker/can/read/this/file