2017-05-27 100 views
0

我作爲空兩個的bash腳本參數:
慶典:如何通過包含空格

#main.sh 
#!/bin/bash 

files="file1 \"abc $1\" \"def $1\"" 

./upload.sh $files 


#upload.sh 
#!/bin/bash 
for param in "[email protected]"; do 
    echo "${param}" 
done 

我試圖包含空格的參數傳遞給main.sh與命令如下:

edeMacBook-Pro:doc Yves$ ./main.sh "Sri Lanka" 

我認爲$files會是這樣的:file1 "abc Sri Lanka" "def Sri Lanka"。所以當我做./upload.sh $files時,應該把三個參數傳遞給upload.sh

然而,當我執行命令,我得到:

file1 
"abc 
Sri 
Lanka" 
"def 
Sri 
Lanka" 

回答

3

而不是試圖建立一個單一的字符串,「看起來像」的所有參數的字符串(然後你可以嘗試eval如果你真的想走那條路線)嘗試使用陣列:

files=("file1" "abc $1" "def $1") 
upload.sh "${files[@]}"