プログラムを作成していますが、ユーザーに再度注文するか、プログラムを終了するかを尋ねる簡単なエコーが必要です。 UnixのShellにあります。
プログラムは単に順序変数をエコーして読み込むだけです。最後に、どんな食べ物が欲しいのか、何KGなのかなどがすべてまとめられています。
今度は、プログラムがユーザーに「もう一度注文しますか?」と尋ねたいのですが、入力がプログラムを再起動したり、プログラムを終了したときに「はい」または「いいえ」のifステートメントを追加する方法がわかりません。彼らが「いいえ」と言ったら。
助けてくれてありがとう。簡単に見えますが、オンラインでヘルプが見つかりません。
ベストアンサー1
私はあなたが次のようなことをしたいと思います:
#!/bin/sh
read -rp 'Fish or chicken? ' protein
read -rp 'Beans or rice? ' starch
read -rp 'Broccoli or asparagus? ' veggie
read -rp 'Beer or beer? ' drink
echo "You have ordered the $protein with a side of $starch and $veggie, and to drink you will have $drink"
while true; do
read -rp 'Would you like to order again? ' order
if echo "order" | grep -iq 'yes'; then
exec $0
elif echo "order" | grep -iq 'no'; then
exit 0
fi
done
read
標準入力から読み取るシェル組み込みコマンドです。スイッチを介して-p
ユーザーに「メッセージ」を表示し、デフォルトまたはREPLY
指定された変数(タンパク質、デンプン、野菜、飲み物など)を設定します。
$0
スクリプトのシェル名に拡張されるシェル特殊パラメータ。スクリプト名
ユーザーが「もう一度注文しますか?」と答えると、yes
スクリプトは再実行され、そうでなければ終了します。