expectについて嵌まった

久しぶりにexpectでスクリプトを書いてたら動かなくて嵌まった。

以前に書いていたエントリーを参考にしていた

 

今回書いていたスクリプトのshebangが #!/usr/bin/expectではなく、

#!/bin/bash だった事に起因していました。

 

なぜshebangが影響するかというと文字のエスケープが必要になるようです。

×   expect “Enter PEM pass phrase:”

○ expect \”Enter PEM pass phrase\:\”

前者はexpectを直接実行した場合でエスケープがいらないのに対し、

シェルスクリプト内でexpect -c として利用する場合はエスケープが必要になります。

 

ちょっと嵌まったので書いておきました。

 

Comments are closed.