Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash shell传递变量和引号_Bash_Variables_Quotes - Fatal编程技术网

bash shell传递变量和引号

bash shell传递变量和引号,bash,variables,quotes,Bash,Variables,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="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”

非常相关:。所以像
java-jar myapp.jar““$var”
这样的东西应该可以让您的第一个代码使用
“$myvar”
工作。不幸的是,不,否则我不会打开这个问题:)什么不工作,什么是错误?如果参数需要包含单引号,则调用者有责任提供正确的数据,而不是您的数据。如果您没有使用
myvar
,正确的调用是
java-jarmyapp.jar'alfanum;001String'
java-jar myapp.jar''alfanum;001String'
?需要引用命令替换,但在
bash
中,这与
java-jar myapp.jar'$myvar'
完全相同。