$(...)
是否与 Bash 中的 (...)
相同?
此外,$((...))
是否与 ((...))
相同?
此外,${...}
是否与 {...}
相同?
更一般地说,美元符号代表什么?谢谢。
最佳答案
在下文中,我使用“returns”表示返回值,使用“produces”表示“替换结果文本”。
$(...)
表示在子 shell 的括号中执行命令并生成其标准输出。示例:$ echo "The current date is $(date)" The current date is Mon Jul 6 14:27:59 PDT 2015
(...)
表示在子 shell 中运行括号中列出的命令。示例:$ a=1; (a=2; echo "inside: a=$a"); echo "outside: a=$a" inside: a=2 outside: a=1
$((...))
表示执行算术运算并产生计算结果。示例:$ a=$((2+3)); echo "a=$a" a=5
((...))
表示执行算术运算,可能会更改 shell 变量的值,但不产生其结果。示例:$ ((a=2+3)); echo "a=$a" a=5
注意计算的返回值是返回的,所以可以在
while
或if
中使用。${...}
表示产生大括号中命名的 shell 变量的值。示例:$ echo ${SHELL} /bin/bash
{...}
表示将大括号中的命令作为一个组执行。示例:$ false || { echo "We failed"; exit 1; } We failed
More generally what does the dollar sign stand for?
它在给定上下文中表示任何含义。
关于bash - 带美元和不带美元的双括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255699/