Rob*_*cco 4 shell bash string command-substitution variable-substitution
我正在尝试使用以下语法:
A=${B:-C}
Run Code Online (Sandbox Code Playgroud)
A
变量在哪里,B
是我要分配C
的值,如果 B 为空,则是默认值。
现在我想B
用 command替换nc -l 443
,所以如果nc
通过端口 443 接收到一个字符串,它被分配给变量A
,否则A
设置为默认值。我将命令写为:
A=${`nc -l 443`:-NULL}
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
-bash: A=${`nc -l 443`:-NULL}: bad substitution
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
嵌套替换在任何现代 Bourne-like shell 中都不可用,除了zsh
:
$ print -rl -- ${$(echo):-C}
C
$ print -rl -- ${$(echo 1):-C}
1
Run Code Online (Sandbox Code Playgroud)
在其他外壳中:
A=$(nc -l 443)
A=${A:-C}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3299 次 |
最近记录: |