現在、私はInto to Unixコースのメニューを見つけようとしています。今経験している問題は、スクリプトに何かを入力すると、入力に応じて応答するスクリプトの代わりに私の入力が表示されることです。しかし、本によると、イベントに使用されている形式に準拠しているので、正しく実行する必要があると思いますか?これを行うには何を修正する必要がありますか?私が使用するシェルもbashです。
私がしている宿題はこうです。
以下を行うためのオプションを提供するケーススクリプトを作成します。
ㅏ。 /etc/passwd ファイルに ID 番号が 999 より大きい 4 人のユーザーをリストします。
b.dateコマンドには、月、日、年だけが表示されます。
氏。ユーザーが選択したファイルをインポートし、すべての文字を大文字で表示します。
今使っているコードです
clear
if [ "$#" -ne 1 ]; then
echo Press 1 for a list of users with the UID greater than 999
echo Press 2 for the Day, Month, and Year
echo Press 3 to show a file name from lower case to upper case
read a
exit
fi
case "$1" in
1) awk -F: '($3>=999) && ($3!=9999)' /etc/passwd ;;
2) echo Todays date is: ; date | awk '{print $2, $3, $6}' ; sleep 1 ;;
3) ls -aC | more ; echo What file would you like to change from lower case to uppercase? ;read y ;sleep 1 ; clear ; echo $y | tr '[:lower:]' '[:upper:]' ; sleep 1 ;;
*) echo Invalid input
esac
答え1
exit
@manatworkがコメントで指摘したように、ユーザーが選択を入力した直後にこれを実行したくありません。また、ステートメントはcase
スクリプトの最初の引数(またはBash用語の最初の位置引数)に対しても機能します。$1
論理的に、これはあなたが望むものではありません。read
ユーザーの選択を入力すると、次のようa
になりますcase
。
case "$a"
in
...