在外壳程序中的环境变量中转义引号

时间:2018-07-23 19:00:26

标签: shell environment-variables double-quotes

我正在尝试在定义环境变量时使用引号。

例如:

setenv SOME_TEMP_ENV "-arg "hello world""

尽管失败,但出现以下错误:

setenv: Too many arguments.

在阅读了一些有关转义引号的知识之后,我尝试了以下方法:

setenv SOME_TEMP_ENV "-arg \"hello world\""
setenv SOME_TEMP_ENV "-arg '"'"'hello world'"'"'"

此外,我可以使用以下方法:

setenv SOME_TEMP_ENV "-arg "'"hello world"'""

但是它不符合我的要求:

echo $SOME_TEMP_ENV
-arg 'hello world' // should be -arg "hello world"

如何在环境变量中使用引号?

**编辑**:我必须在字符串周围使用双引号,因为我的脚本由于某种原因无法读取字符串,它看起来像这样:'-arg "hello world"'

2 个答案:

答案 0 :(得分:1)

在字符串周围使用单引号。

setenv SOME_TEMP_ENV '-arg "hello world"'

答案 1 :(得分:1)

使用单引号作为外部包装在csh(您的问题似乎与之有关)和bash(您的问题被标记为)中都可以使用:

'-arg "hello world"'