bash shell 传递变量和引号

bash shell pass variable and quotes

我有一个变量,其中包含所有类型的字符

myvar="alfanum;001String"

我需要以这种方式将它们传递给带有单引号的命令

java -jar myapp.jar  HERE I NEED TO PUT ->  'alfanum;001String' with single quotes

但如果我这样做

java -jar myapp.jar "'$myvar'"  

没用。

注意我不能只使用双引号:

java -jar myapp.jar "$myvar" 

因为 $myvar 是用户的输入,myapp.jar 需要用单引号四舍五入来检索它

谢谢

你可以这样做

java --jar myapp.jar $(echo "'$myvar'")

但为什么不直接使用双引号呢?

您可以将多种引号类型混合在一起形成单引号中的字符串:

"'""$myvar""'" 将扩展为 'alfanum;001String'。不过,您可能只需要 "$myvar"