2013-02-21 72 views
0
#!/bin/bash 

ret=`zenity --entry ` 

zenity --entry --text=$ret 

這裏的第二條指令只打印字符串的第一個字。我如何獲取可以包含空格的字符串?bash中的空格分隔參數

回答

2

利用該:

zenity --entry "--text=$ret" 

這應該呈現整個--text=thing with spaces in it作爲單個參數。

當然,您的zenity可執行文件仍然必須能夠處理其中有空格的參數,但這將是不同的問題。

通過舉例的方式,請參見下面的腳本執行:

#!/bin/bash 
echo "[$1]" "[$2]" 

當你不使用和使用引號運行它,你會得到以下結果:

pax> ./testprog.sh two args 
[two] [args] 

pax> ./testprog.sh "one arg" 
[one arg] [] 
+0

RET ='zenity --entry 「--text = $ RET」'。仍然不工作..我必須逃避雙引號? – Kaunteya 2013-02-21 12:21:29

+0

@KaunteyaSuryawanshi:不,你爲什麼要改變_first_行(以'ret ='開頭的行)?這被用來設置'ret'。更改_second_行,即_uses_'ret',您聲明的那個行不起作用。 – paxdiablo 2013-02-21 12:22:41