如何在变量值的字符串中包含双引号

如何在变量值的字符串中包含双引号

我正在尝试在 shell 脚本中运行一个命令,该命令要求其参数以下面的格式传递,其中包括带字符串的双引号。

command "string"

该字符串存储在变量 var1 中。

我尝试了以下方法,但无法达到要求。有人可以建议实现它的方法吗?我正在使用 bash shell。

  1. command $var1被解释为

     command string`
    
  2. command "$var1"解释为

     command string
    
  3. command \"$var1\"解释为

    command '"string"'
    
  4. command '"'$var1'"'被解释为:

    command '"string"'
    

答案1

满足您要求的解决方案是使用:

command \""$var1"\"

不,set -x 输出并不是(完全)command接收到的输出。

答案2

您可以像下面这样设置变量:

$ var='"string"'
$ echo $var
"string"

或者

$ var=string
$ echo $var
string
$ echo "\"$var\""
"string"
$ ls "\"$var\""
ls: cannot access "string": No such file or directory

我相信这是我们所期望的。

相关内容