如何在Bash中单引号字符串中单引号转义?
我要显示这样如何在Bash中单引号字符串中单引号转义?
I'm a student
当然Bash中的字符串,你可以做这样的
echo "I'm a student"
但如何做到这一点的同时使用字符串周围单引号?
echo 'I\'m a student'
不起作用。但以下工作:
echo $'I\'m a student'
从庆典的手册页:
单引号可能无法单引号之间出现,前面有反斜杠 时也是如此。形式$ '字符串'的
....
词会被特殊对待。字 扩展为字符串,反斜杠转义字符替换为由ANSI C标准指定的 。
一个丑陋的形式是:'“我”“”‘硕士生’ –
为什么,bash,* whyyyy *? –
'echo $'我是一名学生!'=>'!':event not found',这不是一个真实的单引号字符串,在bash中,它应该避免任何解释。 – regilero
格伦杰克曼提到的“丑陋”解决方案实际上应该被列为顶级答案。它运作良好,在某些情况下实际上很漂亮。
'I'"'"'m a student'
这结束I
再经过单引号字符立即启动包含一个单引号双引号字符串,然后启动另一个单引号字符。 Bash然后将所有连续的字符串连接成一个。
美丽!下面
我认为我们对美的定义有所不同......;) –
的例子工程,因为转义单引号\'
在技术上是两个单引号参数
echo 'I'\''m a student'
对不起之间,有没有办法放置一个单引号在单引号之间。见http://www.gnu.org/software/bash/manual/bashref.html#Special-Parameters一节'3.1.2.2单Quotes' –