つまり、インタラクティブなプロンプトを持つほとんどのプログラムには、ある種の初期化ファイルや何かを実行するコマンドフラグを設定する機能があることがわかります。それから対話型プロンプトに移動します。しかし、私はシェルレベルのソリューションに興味があります。
xyz
端末の代わりに改行で終わるコマンドを実行するための対話型プロンプトを提供するシェルで実行するコマンドがあるとします。
対話型セッションが開始されるたびに実行したい2つのコマンド(2行)があるとしますxyz
。
この2行の場合ただ実行したいコマンドはもちろん、次のように実行できます。
printf '%s\n' 'first command' 'second command' | xyz
または、実行するコマンドが多いが事前にすべてを知っている場合は、そのコマンドをすべてファイルに入れて、次のコマンドを実行できます。
xyz < commands-file.txt
しかし、xyz
私が入力した後、手動で入力した結果の標準的な対話型プロンプトを取得したいと思いますfirst command
。second command
...リダイレクトを使用してシェル(たとえば、シェル関数)でこれを行う方法はありますか?
入力が端末から出ていないか、出力がバッファリングされているかどうかわからないため、明らかな解決策はsed -e '1ifirst command' -e '1isecond command' | xyz
機能しません。xyz
sed