'echo -e "? \c"' はどのように予想されますか?

'echo -e

他のスクリプトと対話するスクリプトを作成するように求められましたが、ブロックされました。私がやり取りしているスクリプトは、以下を反映しています。 「1」を再送信する必要があります。しかし、まだそこまで行くことができません...

echo -e "Select option 1"
echo -e "? \c"

私が今まで試したこと - 私が知っている限り:

expect "?"
send "1" 

expect "? "
send "1"

expect "? \n"
send "1"

expect "? \c"
send "1"

これらのどれもうまくいかないようです。誰かが私に正しい方向を教えてもらえますか? :)

\r1PS:最初の障害物を超えたら、もう1つ追加する必要があるようです...

ベストアンサー1

echo -e "? \c"部分は何も印刷されず、引数として渡された文字列の後に改行を印刷しないことが\cコマンドの指示です。したがって、予想では文字列(疑問符、スペース)echoを予想する必要があります。"? "コマンドの引数はワイルドカードを含むexpectパターンなので、?疑問符を文字通り解釈する必要があります。

expect -ex "? "
send "1\r"

¹他のいくつかの実装echo(bash組み込みなど)はecho -n "?"この構文を使用します。

おすすめ記事