我很难弄清楚如何回应这个:
![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1")
我一直收到这个错误:
bash: ![alt: event not found
在它周围使用双引号不起作用。使用它周围的单引号确实有效,但是,我还需要回显其中包含单引号的字符串。那时我无法用单引号包装字符串。
有没有办法回应任何内容的字符串?
感谢。
编辑:这是一些背景信息。我正在制作一个Markdown渲染器来抓取代码编辑器的内容,然后将代码的每一行单独附加到一个文本文件中。我是这样做的:
echo TheLineOfMarkdown > textfile.txt
答案 0 :(得分:1)
!很烦人。我的建议:使用 \ !。
!调用历史记录完成,也在双引号内执行。因此,您需要单引引感叹号,但正如您所说,与不需要单引号其他单引号的冲突相冲突。
请记住,您可以混合引号:
$ echo '!'"'"'"'
!'"
(这只是一个参数。)但在这种情况下,反斜杠更容易输入,而且可能更具可读性。
答案 1 :(得分:1)
与许多编程语言不同,Bash中的'...'
和"..."
不代表“字符串”本身;它们引用/转义它们包含的任何内容,但它们不会创建分隔参数的边界。因此,例如,这两个命令是等效的:
echo foobar
echo "fo"ob'ar'
因此,如果你需要用单引号引用一些参数,并且参数的不同部分必须包含单引号 - 没问题。
例如:
echo '![alt text](https://... "What'"'"'s up, Doc?")'
另一种选择是使用\
,它类似于'...'
,只是它只引用一个字符。它甚至可以在双引号内使用:
echo "\![alt text](https://... \"What's up, Doc?\")"