我尝试了以下命令
variable='one|name'
echo $variable
Run Code Online (Sandbox Code Playgroud)
输出是
one|name
Run Code Online (Sandbox Code Playgroud)
而echo one|name给出错误No command 'name' found。这是合理的,因为 bash 将其|视为管道并尝试name使用one作为输入来执行命令。
但为什么echo $variable打印one|name?参数和变量展开后,不应该等价于echo one|name?
版本:
GNU bash, version 4.3.11(1)-release (i686-pc-linux-gnu)
Run Code Online (Sandbox Code Playgroud)