状況
以下のようなプロンプト*1に対して、自動で y
を入力してエンターを押したいです。
Do you want to enable fuzzy auto-completion? ([y]/n)
書いてみた expect のコード
以下のような expect のコード(シェルスクリプト内)を書いてみました*2。
expect -c " spawn ./install expect [y]/n) send y\n "
しかし動きませんでした。例えば、以下のように書いてみたりしました。
expect \\[y\\]\\/n)
expect \\\[y\\\]\\\/n)
expect \"\\\[y\\\]\\\/n)\"
いずれの場合も(いずれの類似組み合わせの場合も)invalid command name
や missing close-bracket
などのエラーが出て実行できませんでした。
結果
仕方がないので [
を expect
の文字列に含まない形で判定するようにしたら、上手くいきました。ここでハマっていても本質的ではないため、一時的な回避策です。