2009-05-29 119 views
0

好的,我有一個腳本需要幾個參數,運行數據,然後將數據rsyncs輸出到不同的服務器。問題是要運行數據,我必須接受其中一個參數,然後使用它來運行報告,這是非常不禮貌的(例如[3023.2 <> 1],[5111.3 $] =「5」等)。 )。在Bash中混合使用單引號和雙引號

所以,如果我要運行命令,我需要把參數放在單引號中,這樣會使參數不被拉入。

因此,如果我要運行腳本...

arg1 = [5111.3$]="5" 

runjob specfile.spx '$arg1' 

這是行不通的,但如果我是用雙引號運行它,然後有一個很好的機會,論據得到通過將有雙引號。任何想法如何解決這個問題?

回答

2

周圍使用值單引號,當你設置它,然後用雙引號周圍的變量,當你展開:

$ arg1='[5111.3$]="5"' 
$ echo "$arg1" 
[5111.3$]="5" 
0

引用溢出。嘗試

[5111.3$]=\"5\" 

高級腳本指南對quoting良好的部分。