小编典典

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

all

比方说,你有一个alias像这样的 Bash:

alias rxvt='urxvt'

效果很好。

然而:

alias rxvt='urxvt -fg '#111111' -bg '#111111''

不会工作,也不会:

alias rxvt='urxvt -fg \'#111111\' -bg \'#111111\''

那么,一旦你转义了引号,你如何最终匹配字符串中的开始和结束引号?

alias rxvt='urxvt -fg'\''#111111'\'' -bg '\''#111111'\''

看起来很笨拙,尽管如果允许您像这样连接它们,它将代表相同的字符串。


阅读 114

收藏
2022-02-25

共1个答案

小编典典

如果您真的想在最外层使用单引号,请记住您可以粘贴两种引号。例子:

 alias rxvt='urxvt -fg '"'"'#111111'"'"' -bg '"'"'#111111'"'"
 #                     ^^^^^       ^^^^^     ^^^^^       ^^^^
 #                     12345       12345     12345       1234

解释如何'"'"'解释为'

  1. '结束使用单引号的第一个引号。
  2. "使用双引号开始第二个引号。
  3. '引用的字符。
  4. "结束第二个引号,使用双引号。
  5. '使用单引号开始第三个引号。

如果您没有在 (1) 和 (2) 之间或 (4) 和 (5) 之间放置任何空格,shell 会将该字符串解释为一个长单词。

2022-02-25