I’m hungry

おもにAmazonでの衝動買いや技術的な話をぼちぼちと。

expectコマンドで環境変数を取得するには

2014-04-09 22:00:00 | ネットサービス/テクノロジ
備忘メモとして書いておく。結論だけ言えばtclと同じなので

set ENV_VAL_IN_EXPECT $env(ENV_VAL_IN_SHELL)
でexpect内の変数 ENV_VAL_IN_EXPECT にシェルの環境変数 ENV_VAL_IN_SHELL がsetされる。

たとえばサーバーに入って特定のプロセス(例:suspect_process_name)を強制的に殺すスクリプトだとこんな感じになる。

#!/usr/bin/expect

set TARGET_HOST_IP $env(TARGET_HOST_IP)

set timeout 5
spawn ssh -o "StrictHostKeyChecking no" sohgoh@$TARGET_HOST_IP
expect "sohgoh@$TARGET_HOST_IP's password:"
send "input_your_password\n"
expect "yourhost:~ sohgoh$"
send "killall -9 suspect_process_name ; exit\n"
interact

※いまどきパスワード認証なんか使わないけど、例ってことで

Comment    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« いすみ鉄道に乗ってきました | TOP | 写真で振り返る熊本・福岡(... »
最新の画像もっと見る

post a comment

ブログ作成者から承認されるまでコメントは反映されません。

Recent Entries | ネットサービス/テクノロジ