如何在Bash的单引号字符串中转义单引号?

时间:2011-11-24 08:35:29

标签: linux bash escaping

我想像Bash一样在Bash中显示一个字符串

I'm a student

当然你可以这样做

echo "I'm a student"

但如何在字符串周围使用单引号实现此目的?

3 个答案:

答案 0 :(得分:96)

echo 'I\'m a student'

不起作用。但是以下工作:

echo $'I\'m a student'

来自bash的手册页:

  

单引号之间可能不会出现单引号,即使在前面引用也是如此   反斜杠   ....    $'string'形式的单词将被特别处理。这个单词   扩展为字符串,将反斜杠转义字符替换为   由ANSI C标准规定。

答案 1 :(得分:43)

"丑陋" Glenn Jackman提到的解决方案实际上应该列为顶级答案。它运作良好,在某些情况下实际上很漂亮。

'I'"'"'m a student'

这结束了I之后的单引号字符串,然后立即启动包含单引号的双引号字符串,然后启动另一个单引号字符串。 Bash然后将所有连续的字符串连接成一个。

美丽!

答案 2 :(得分:7)

以下示例有效,因为转义单引号\'在技术上介于两个单引号参数之间

echo 'I'\''m a student'