• 締切済み

Ubuntu expectコマンド

端末でのexpectコマンドの使い方がわからないので質問します。 Windows10で WSLを使い、Ubuntuを使っています。Postgresqlをインストールし、 sudoコマンドでPostgresqlを起動しているのですが、パスワードの入力を自動化したくて、expectコマンドを使ったのですが、エラーが出てしまいました。端末に入力したコマンドは下記です。 expect -c "spawn sudo service postgresql start;expect [sudo] user01 のパスワード:;send パスワード\n ;interact" エラーは次のようになりました。 spawn sudo service postgresql start invalid command name "sudo" while executing "sudo" invoked from within "expect [sudo] user01 のパスワード:" どなたか、端末からexpectコマンドを使ってPostgresqlを起動する書き方を教えてくださいお願いします。

みんなの回答

  • ballville
  • ベストアンサー率47% (233/487)
回答No.2

autoexpectをインストールし、 autoexpect 端末操作(ログインなど) ctrl+d とやると、やった手順をカレントフォルダ上のscipt.expというファイルに吐いてくれます。 このファイルはそのままシェルスクリプトとして使えるし、必要なら手直しして使ってもOK。 expectの書き方の参考にもなります。

situmonn9876
質問者

お礼

ヒントありがとうございます。

  • notnot
  • ベストアンサー率47% (4900/10361)
回答No.1

端末から打ち込むのじゃなくて、シェルスクリプトにするのが良いと思います。

situmonn9876
質問者

お礼

シェルスクリプトの書き方を調べます。お返事ありがとうございます。