質問: シェルスクリプトでコマンドライン上で行う入力はできるのですが、実行プログラムに対して入力することができません。 例えば、c言語のscanfなどがあるプログラムを実行するときのscanfへの入力もシェルスクリプト上で行いたいのですが、そのような場合はどうしたら良いのでしょうか シェルスクリプト上で実行プログラムに入力をする記述法を教えて下さい --- 追記 入力もシェルスクリプト内で自動化したいという意味です。 現在使用しているプログラムでは多数の入力ファイルをひとつずつ読み込んで、こちらから文字列を入力します。 しかし、読み込みにかかる時間が長いため、入力ファイルを読み込んだ後の文字列の手入力も自動化すれば、効率が良くなると考えています。 毎回手入力する文字列は同じなのですが、文字列の数が100個近くあるのでしんどいです。 対話型の入力です。
回答: 対話型のコマンドをシェルスクリプトで実行したいということですよね? `expect`コマンドを使ってください。 例としてログインをシェルスクリプト化します。 ``` set timeout 10 #タイムアウトの秒数 spawn slogin user@host # 実行コマンド expect "Password :" # 期待する表示される文字列 send "password\r" # 入力 ``` `expect`にはワイルドカード、正規表現が使用できます。