shell脚本中使用“”或{}作为变量有什么区别
PATH="\home\user\test dir"
Run Code Online (Sandbox Code Playgroud)
何时使用
"$PATH"
$(PATH)
${PATH}
"${PATH}"
Run Code Online (Sandbox Code Playgroud)
还有其他用例或方法来定义此变量吗?
这是一个强制性的示例代码{ }。
var=123
echo "${var}xx" # 123xx
echo "$var"xx # 123xx but not the proper way
echo "$varxx" # nothing, unknown variable varxx
Run Code Online (Sandbox Code Playgroud)
并且$( )是命令替换:"$(cmd "foo bar")"导致使用参数“foo bar”执行命令“cmd”,并将"$(..)"被输出替换。请参阅http://mywiki.wooledge.org/BashFAQ/002和http://mywiki.wooledge.org/CommandSubstitution
始终引用您的变量。
学习如何在shell中正确引用,这非常重要:
“双引号”包含空格/元字符的每个文字和每个扩展:
"$var","$(command "$var")","${array[@]}","a & b"。用于'single quotes'代码或文字$'s: 'Costs $5 US',ssh host 'echo "$HOSTNAME"'. 请参阅
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words