2017-12-28 15 views
0

私はスクリプトを作成していますので、入力が完了したらcontrol + dを押す必要があります。このコマンドを送信したいので、自分の仕事をやり直すのではなく、自分の仕事をスクリプトにするだけです。bash経由でCtrl + dをサーバーに送信

+2

あなたの問題は何ですか? – Simon

+2

Ctl-dは、対話型端末からEOFを送信する方法です。プログラムに入力をパイプしている場合、パイプの終わりにEOFが得られます。特別な操作は必要ありません。 – Barmar

答えて

1

おそらく、ユーザー入力の終了を示すために使用される「送信終了」区切り文字について話しているとします。そうであれば、いつでもデータをあなたのスクリプトにパイプすることができます。それは、これに代えて、次のとおりです。

$ test_script.sh 
My input! 
^D 

あなたは、ファイルにそのデータを書き込みたい:次に

$ cat > input 
My input! 
^D 

スクリプトにパイプ:いいえ^Dがあるため必要とされない

$ test_script.sh < input 

そのファイルが完全に読み込まれると、それに応じてスクリプトが通知されます。 <シェル演算子は、STDINを切り替えて、ターミナルではなくファイルから読み込みます。同様に、>を使用して、プログラムの出力をキャプチャしてファイルに保存することができます(この入力ファイルを作成または編集するツールは使用できます)。

これは、Python、Perl、Ruby、Node.js、bashやその他のシェルなど、あらゆるスクリプト言語で動作します。

関連する問題