次の構文を使用しようとしています。
A=${B:-C}
A
変数はどこにあり、B
割り当てたい値はC
Bが空のときのデフォルト値です。
B
これでコマンド置換を使用したいnc -l 443
ので、nc
ポート443を介して文字列をリッスンすると変数に割り当てられ、A
そうでない場合はA
デフォルトに設定されます。私は次のようにコマンドを書きます。
A=${`nc -l 443`:-NULL}
しかし、エラーが発生します。
-bash: A=${`nc -l 443`:-NULL}: bad substitution
この目標をどのように達成できますか?
ベストアンサー1
以下を除いて、最新のBourneに似たシェルでは入れ子になった代替は使用できませんzsh
。
$ print -rl -- ${$(echo):-C}
C
$ print -rl -- ${$(echo 1):-C}
1
他のシェルでは:
A=$(nc -l 443)
A=${A:-C}