如果我在 Ubuntu 上运行以下命令行:
var="$(date +"%x %r %Z")"
echo var
Run Code Online (Sandbox Code Playgroud)
我可以获得所需的输出。但如果我只是跑
date +%x %r %Z
Run Code Online (Sandbox Code Playgroud)
我会得到错误:
日期:额外的操作数“%r”
尝试使用“date --help”获取更多信息。
那么date命令对应的是var="$(date +"%x %r %Z")"什么呢?谢谢。
您没有复制完全相同的命令。你写date +"%x %r %Z"在括号里。这在外面工作得很好。否则,date具有三个参数 ( +%x,%r和%Z),而不是一个 ( +%x %r %Z)。
来自man bash:
使用 $(command) 形式时,括号之间的所有字符组成命令;没有被特殊对待。
命令替换可以嵌套。
在评估内容之前匹配括号,因此命令不会拆分为$(date +%x, %r, %Z)。
注意:
你忘了$的echo $var。