echo![alt导致事件未找到

时间:2017-01-09 09:45:27

标签: bash echo

简单地运行

echo "This is a **test** see ![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png)"

你得到:

bash: ![alt: event not found

为什么呢?预计会This is a **test** see ![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png)

2 个答案:

答案 0 :(得分:2)

使用单引号

echo 'This is a **test** see ![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png)'

单引号接受您逐字传递的测试。虽然双引号字符串由bash解释,例如$VAR表示变量,$(..)将执行命令并插入stdout,[...]将被视为布尔评估程序{{1作为NOT,依此类推。从bash手册:

  

用双引号括起字符可保留引号内所有字符的字面值,但$ !除外,它们的特殊含义与双引号保持一致。只有当后跟下列字符之一时,反斜杠才会保留其特殊含义:$,`,",\或。双引号可以在双引号内引用,前面加一个反斜杠。如果启用,将执行历史记录扩展,除非!出现在双引号中使用反斜杠进行转义。之前的反斜杠!没有删除。

答案 1 :(得分:0)

It gives an error => "Couldn't load dll" 被解释为NOT(逻辑NOT)运算符,因此!被视为命令。使用单引号可能是最好的选择:

[alt