QA@IT

expectの使い方

3512 PV

現在macでexpectを使い、パス入力を必要とする作業を自動化したいと考えています。

しかしexpectの使い方がよくわかっておらず、期待通りに動作しません。
以下にそのコードを書かせていただきます。

1 #!/bin/sh
2
3 expect -c "
4 set timeout 5
5 spawn sudo ls
6 expect \"Password:\"
7 send \"hogehoge\n\"
8 "

このプログラムを実行した結果
spawn sudo ls
としかターミナルに出力されておらず、どうもsudo ls が実行されていないように思えます。またsudo -kは実行済みです。

私はどこの書き方を間違えていますか?ご回答いただけるとありがたいです。

回答

8行目にinteractを追加してみては

編集 履歴 (0)
  • うまくいきました。なるほど、標準出力を戻してなかったから表示されなかったんですね。ありがとうございます。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。