我正在尝试在 shell 脚本中运行一个命令,该命令要求其参数以下面的格式传递,其中包括带字符串的双引号。
command "string"
该字符串存储在变量 var1 中。
我尝试了以下方法,但无法达到要求。有人可以建议实现它的方法吗?我正在使用 bash shell。
command $var1
被解释为command string`
command "$var1"
解释为command string
command \"$var1\"
解释为command '"string"'
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
我相信这是我们所期望的。