最兼容的方法是为其他命令转义嵌入式字符串

时间:2015-11-15 16:08:18

标签: bash perl escaping echo zsh

我目前正在使用以下解决方案。

对于文字'string'

variable="'"$(echo -E "$variable" | perl -pe "s/'/'\"'\"'/g;")"'"

对于文字"string"

variable='"'$(echo -E "$variable" | perl -pe 's/(?=[\\"])/\\/g;')'"'
  • 我相信Perl几乎适用于所有环境。
  • 我担心echo -E在某些环境中无效...

你知道更好吗?

  

我知道我们可以使用临时环境变量执行。

NAME=VALUE command
     

但是,某些程序没有提供任何访问它们的方法。

AppleScript示例

enter image description here

修改

我发现AppleScript可以用on run argv ~ end run语法处理参数。

enter image description here

1 个答案:

答案 0 :(得分:1)

引号是AppleScript语法的一部分,因此应与实际数据分开。

osascript -e "log \"$variable\""

osascript -e "log '$variable'"