在Bash中混合单引号和双引号
好的,我有一个脚本,它接受一些参数,运行数据,然后将数据重新同步到不同的服务器。问题是要运行数据,我必须获取其中一个参数,然后使用它运行一个报告,这对bash非常不友好(例如[3023.21],[5111.3$]=“5”,等等) 因此,如果我要运行该命令,我需要将参数放在单引号中,这样就不会将参数拉入其中 因此,如果我要运行脚本在Bash中混合单引号和双引号,bash,scripting,syntax,arguments,Bash,Scripting,Syntax,Arguments,好的,我有一个脚本,它接受一些参数,运行数据,然后将数据重新同步到不同的服务器。问题是要运行数据,我必须获取其中一个参数,然后使用它运行一个报告,这对bash非常不友好(例如[3023.21],[5111.3$]=“5”,等等) 因此,如果我要运行该命令,我需要将参数放在单引号中,这样就不会将参数拉入其中 因此,如果我要运行脚本 arg1 = [5111.3$]="5" runjob specfile.spx '$arg1' 这是行不通的,但是如果我用双引号运行它,那么传入的参数很可能会有双
arg1 = [5111.3$]="5"
runjob specfile.spx '$arg1'
这是行不通的,但是如果我用双引号运行它,那么传入的参数很可能会有双引号。有什么办法可以解决这个问题吗?引用逃避。试一试
[5111.3$]=\"5\"
《高级脚本编写指南》中有一个很好的章节介绍。在设置值时,在该值周围使用单引号,然后在展开变量时,在变量周围使用双引号:
$ arg1='[5111.3$]="5"'
$ echo "$arg1"
[5111.3$]="5"