Bashのフォールスルーケース(理想的には大文字と小文字を区別しない)でのswitchステートメントの正しい構文を探しています。PHPでは、次のようにプログラムします。
switch($c) {
case 1:
do_this();
break;
case 2:
case 3:
do_what_you_are_supposed_to_do();
break;
default:
do_nothing();
}
私はバッシュでも同じようにしたいです:
case "$C" in
"1")
do_this()
;;
"2")
"3")
do_what_you_are_supposed_to_do()
;;
*)
do_nothing();
;;
esac
これはどういうわけか機能しませんdo_what_you_are_supposed_to_do()
。$ Cが2 OR 3のときに関数を実行する必要があります。
do_nothing()
SKIPステートメントにする必要がありますか?を使用し:
ます。
参照してくださいShellcheckを使用する方法、bashスクリプトをデバッグする方法は?(U&L.SE)、bashスクリプトをデバッグする方法?(SO)、bashスクリプトをデバッグする方法は?(AskU)、Bashスクリプトのデバッグなど
—
jww
function fname { echo "Inside fname"; return 0; }
たりfname() { echo "inside fname"; return 0; }
、括弧を関数呼び出しに配置したりできるので、関数の定義のように見えます。関数は、次のような他のコマンドラインプログラムのように呼ばれるべきmv
、cp
、rsync
、ls
、cd
、等...この場合、私たちはそうのようなfnameのを呼び出しますfname $ARGS
。