bash:将标点符号分配给变量

时间:2014-06-03 00:28:49

标签: bash unix

当我像这样分配时:

rmall="\,\.\?\!\:\;\(\)\[\]\{\}\"\'"
然后回复$ rmall,我得到了这个:

\,\.\?\!\:\;\(\)\[\]\{\}\"\'

但我想要的只是,我该怎么办?

,.?!:;()[]{}"'

稍后我需要删除它们。

谢谢

2 个答案:

答案 0 :(得分:3)

使用引号反斜杠进行双引号。使用其中一种。

注意:您始终需要使用反斜杠来转义引号字符,否则不需要。

答案 1 :(得分:0)

在双引号内,只有三个转义序列被特别处理:

  1. \"被文字"
  2. 取代
  3. \$被文字$
  4. 取代
  5. \\被文字\
  6. 取代

    这三个版本需要允许文本字符在它们通常会产生特殊行为的上下文中。显然,\"允许您在双引号字符串中包含双引号。 \$允许您输出文字美元符号,否则会触发参数替换:

    bash $ foo=5; echo "\$foo = $foo"
    $foo = 5
    

    \\允许您输出在参数替换之前或字符串末尾的文字反斜杠。

    bash $ foo=5; echo "\\$foo"
    \5
    bash $ echo "Use a \\"
    Use a \
    

    字面上处理反斜杠后跟任何其他字符:

    bash $ echo "\x"
    \x