誰でもこの形式を説明できますか?
${name:-$devi}
例:
"${1+"$@"}" will check for that first variable to be set , if not it will use that
command line argument.
これらの変数:-
の違いは何ですか?+
誰でもこの形式を説明できますか?
${name:-$devi}
例:
"${1+"$@"}" will check for that first variable to be set , if not it will use that
command line argument.
これらの変数:-
の違いは何ですか?+
${var:-val}
が設定されていて null でない${var}
場合と同じです。それ以外の場合は に展開されます。これは、変数のデフォルト値を指定するために使用されます。var
val
${var+val}
var
が設定されていない場合は何も展開されず、そうでない場合は に展開されval
ます。これは、変数の代替値を提供するために使用されます。
"${1+"$@"}"
古いシェル バージョンのバグの回避策です。と書いたばかりの場合、何も展開しないのではなく、引数が指定されていないときに"$@"
展開されます。""
スクリプトは、単一の空の引数が指定されたかのように動作します。この構文は、最初に が設定されているかどうかをチェックします$1
。最初の引数がない場合は、明らかに引数がまったくありません。が設定されていない場合、何も展開されません。それ以外の場合$1
は、安全に使用できます"$@"
。
最近のほとんどのシェル バージョンにはこのバグがないため"$@"
、特別なチェックなしで書き込むことができます。+
シェル変数展開の構造に他の一般的な使用例があるかどうかはわかりません。