2016-08-12 52 views
-1

我有一个变量,至极包含了所有类型的字符的bash shell变量传以及行情

myvar="alfanum;001String" 

的,我需要他们用单引号传递给命令这样

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

但如果我做

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

它不起作用。

注意,我不能只使用双引号:因为$myvar是用户的输入和myapp.jar需要找回它用单引号

四舍五入

java -jar myapp.jar "$myvar" 

谢谢

+1

相关:[在bash shell脚本中的命令中单引号内部变量的扩展](http://stackoverflow.com/q/13799789/1983854)。所以像'java -jar myapp.jar''“$ var''''应该可以做 – fedorqui

+0

你的第一个代码用'”'$ myvar'“'应该可以工作。 – Barmar

+0

不幸的是,否则我不会打开这个问题:) – user2548436

回答

0

你可以这样做

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

但是,为什么不只是你双引号?

+1

命令替换需要引用,但在'bash'中,这与'java -jar myapp.jar''$ myvar'“'完全相同。 – chepner

2

可以在一起的几个报价类型混合在烧毛报价形成的字符串:

"'""$myvar""'"将扩大到'alfanum;001String'。尽管你可能只需要"$myvar"