次を含むシェルスクリプトがあります。
case $1 in
0 )
echo $1 = 0;
OUTPUT=3;;
1 )
echo $1 = 1;
OUTPUT=4;;
2 )
echo $1 = 2;
OUTPUT=4;;
esac
HID=$2;
BUNCH=16;
LR=.008;
セミコロンは上記のスニペットで完全に不要ですか?そして、一部の人々がダブルセミコロンを使用する理由はありますか?
セミコロンは単なる改行であり、改行の代わりに使用するもののようです。
改行もコマンドの区切り文字であるため、行末の単一のセミコロンは不要です。 case
では、各パターンブロックの最後のコマンドの最後にダブルセミコロンが特に必要です。見る help case
詳細については。
man bash
によると:
metacharacter A character that, when unquoted, separates words. One of the following: | & ; ( ) < > space tab control operator A token that performs a control function. It is one of the following symbols: || & && ; ;; ( ) | |& <newline>
したがって、;
はメタ文字または制御演算子にできますが、;;
は常に制御演算子です(コマンドの場合)。
特定のコードでは、行末のすべての;
は必要ありません。ただし、;;
が必要です。
Findの特殊なケースでは、; -execによって呼び出されたコマンドを終了するために使用されます。これに対する@kenorbの回答を参照してください question 。
@ Opensourcebook-Amit
ターミナルまたはシェルスクリプトの単一のセミコロン(;)と同等の改行。
以下の例を参照してください。
端末で:[root @ server test]#ls; pwd;
シェルスクリプトの場合:
[root @ server test]#cat test4.sh
echo "現在のユーザー名:" whoami
echo -e "\ n現在の日付:";日付;
[root @ serverテスト]#
しかし、&は改行またはセミコロンと同等であるというコメントに同意しません
&はバックグラウンドでコマンドを実行しますが、コマンドセパレーターでもありますが、セミコロンまたは改行としては機能しません。