LoginSignup
0
1

More than 3 years have passed since last update.

対話形式のコマンドを自動化するexpectの使い方

Last updated at Posted at 2019-05-10

動作環境

  • macOS High Sierra 10.13.6
  • iterm2 Build 3.2.8

expect is 何?

expectはコマンド内で発生する対話形式の入力を自動化できるコマンド。
つまり、sshなどでpasswordやyes/noの入力が必要になったときに自動的に入力してくれるチョー便利なやつ。

使い方

$ expect -c "
  spawn [自動化したいコマンド]
  expect [表示される返答]
  send [返答で入力する文字]
  interact または expect eof
"

実行例

PW="hogehoge"
expect -c "
set timeout 120
spawn jarsigner  -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /hoge/fuga/keystore hogehoge.apk RELEASEKEY
expect \"パスワードを入力してください:\"
send -- \"${PW}\n\"
expect eof
"

使用する際の注意事項

expectsendで使用する文字列は""で囲むため\でエスケープさせる。
interactは自動で入力されるが、実行はされないため、ターミナルから実行する場合はこちらを使用する。
expectは自動で入力後、次のコマンドまで自動で実行されるため、cronやjenkinsから実行する場合はこちらを使用する。
expectのデフォルトタイムアウトは10秒のため、10秒を超える処理を行う場合はうまく動かないため、set timeoutで設定を行う

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1