- 締切済み
シェルスクリプト中のexpectで変数使う方法
SolarisでshellにBashを使う環境で、リモートのルータに入り コンフィグを操作するscriptを書きたいと思っています。 1.引数に与えられたファイルから値を読み、変数$POLにセットする。 2.expectでルータにSSHし、変数$POLに入っている値を設定する。 3.上記をファイルの行数分繰り返す。 上記を実現しようと以下の様に書いたのですが expect内で変数が扱えません。 (ルータに$POLという文字列のまま送られてしまう) -- #!/usr/bin/bash HOST="192.168.0.100" for list in `cat $1` do POL=$(echo $list | cut -d , -f 1) /usr/local/bin/expect -c ' set timeout 5 spawn ssh -l cm01 $HOST expect "password:" send "hogehoge" expect "router $ " send "config firewall policy\r" expect "router (policy) $ " send "edit $POL\r" send "set firewall on\r" send "end\r" send "exit\r" ' done -- 色々と調べてみたのですが理由がわからず、お教えいただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
補足
書き忘れでした。 $HOSTも$POLもどちらも値が入らず変数名のままです。