2016-08-12 51 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"