我观察到 echo 的以下行为
#!/bin/bash
x=" hello"
echo $x
echo "$x"
Run Code Online (Sandbox Code Playgroud)
现在,当我运行上面的代码时,我得到
ronnie@ronnie:~$ bash test.sh
hello
hello
ronnie@ronnie:~$
Run Code Online (Sandbox Code Playgroud)
所以,有人可以向我解释为什么whitespace在第一种情况下不存在于输出中,并且还指向我定义此行为的文档。
这不是echo行为。这是一种 bash 行为。当您使用echo $x表单时,bash 获取以下命令进行处理(?视为空格):
echo??hello
Run Code Online (Sandbox Code Playgroud)
然后,此命令标记化和bash获得两个令牌:echo和hello这样的输出仅仅是hello
当您使用该echo "$x"表单时,bash 在标记器的输入处具有以下内容:
echo?"?hello"
Run Code Online (Sandbox Code Playgroud)
因此它有两个标记echo和?hello,所以输出是不同的。
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |