【发布时间】:2017-07-03 08:52:27
【问题描述】:
我必须用它们的转义版本替换变量中的所有斜线、反斜线、单引号和双引号,可能在传递中:
' --> \'
" --> \"
\ --> \\
/ --> \/
此时,我用这个来代替单引号:
${MYVAR//\'/\\\'}
但是当我尝试一次性替换斜杠、反斜杠、单引号和双引号时,我被卡住了。
【问题讨论】:
-
如果您尝试转义字符串以用作 shell 输入,您可以尝试
printf '%q' "$MYVAR"(如果您的 bash 支持)。 -
它用于 Synology NAS 脚本:我必须使用 PHP 引擎通过邮件从 bash 发送变量的值。当然,PHP 会返回带有嵌套引号的错误。