【问题标题】:Mixing Single and Double Quotations in Bash在 Bash 中混合单引号和双引号
【发布时间】:2010-10-29 23:10:01
【问题描述】:

好的,我有一个脚本,它接受一些参数,运行数据,然后将数据同步到不同的服务器。问题是要运行数据,我必须采用其中一个参数,然后使用它运行报告,这对 bash 非常不友好(例如 [3023.21]、[5111.3$]="5" 等)。

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

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

arg1 = [5111.3$]="5"

runjob specfile.spx '$arg1'

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

【问题讨论】:

    标签: bash scripting syntax arguments


    【解决方案1】:

    引用转义。试试

    [5111.3$]=\"5\"
    

    高级脚本指南有一个关于quoting 的好部分。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-17
        • 2017-09-27
        • 2021-08-29
        相关资源
        最近更新 更多