誰かが私が間違っているか/このシェルスクリプトを修正する方法を教えてもらえますか?

誰かが私が間違っているか/このシェルスクリプトを修正する方法を教えてもらえますか?

私が達成したいのは、名前が「Instructor」の場合は「Good Afternoon、Instructor」と応答し、別の名前の場合は「Good Evening、 'name'」と応答し、結果をfile.txtファイルに送信することです。 。

#!/bin/bash

read -p "what's your name?"

if [ "$name" = "Instructor" ]
then 
    echo "Good Afternoon, Instructor"
else
    echo "good Evening, "$name" >> file.txt
fi

答え1

ユーザーから名前を読み取るのではなく、namethen NAME(2つの異なる変数)を使用します。また、$nameifステートメントには二重引用符を使用する必要があります。

ユーザーの入力を変数として読み取るには、次のようにnameしますread

read name

必要に応じて、以下を使用してカスタムプロンプトを表示することもbashできます。read

echo 'Hello!'
read -p "What's your name? > " name

もしあなたならいいえread変数名が与えられると、テキストはデフォルトでREPLY呼び出される変数に入ります。

関連情報