Unixに初めてアクセスし、プログラムを再起動または終了するための簡単なユーザー入力を作成したいと思います。 [閉じる]

Unixに初めてアクセスし、プログラムを再起動または終了するための簡単なユーザー入力を作成したいと思います。 [閉じる]

プログラムを作成していますが、ユーザーに再度注文するか、プログラムを終了するかを尋ねる簡単なエコーが必要です。 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スクリプトは再実行され、そうでなければ終了します。


引用する

読む

特殊パラメータ

条件文の場合

whileループ

おすすめ記事