2009-05-29 117 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良好的部分。