在Bash中混合单引号和双引号

时间:2009-05-29 18:04:11

标签: bash scripting syntax arguments

好吧,我有一个脚本,它接受一些参数,运行数据,然后将数据rsync到另一台服务器。问题是要运行数据,我必须使用其中一个参数,然后使用它运行报告,这非常不友好(例如[3023.2<> 1],[5111.3 $] =“5”等)。

因此,如果我要运行命令,我需要将参数放在单引号中,这样就不会将参数拉入其中。

因此,如果我要运行脚本......

arg1 = [5111.3$]="5"

runjob specfile.spx '$arg1'

这不起作用,但如果我用双引号运行它,那么传入的参数很可能会有双引号。关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:2)

在设置值时使用单引号,然后在展开变量时在变量周围使用双引号:

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

答案 1 :(得分:0)

引用逃脱。尝试

[5111.3$]=\"5\"

“高级脚本指南”在quoting上有一个很好的部分。