【问题标题】:quotes in bash when submitting r cmd batch commands提交 r cmd 批处理命令时在 bash 中引用
【发布时间】:2015-12-23 15:05:48
【问题描述】:

Problems with single quotes in a bash script

我看过这篇文章,但我的问题更复杂,简单地用双引号替换单引号是行不通的。我需要在单引号内运行带有单引号和双引号的 R CMD BATCH 命令,像这样

echo 'R CMD BATCH --no-save '--args "xxx.txt"' xxx.r' | qsub -cwd &

我该怎么办?

【问题讨论】:

  • 我实际上得到了一个更好的解决方案,因为 echo 有一个内置选项 -e,通过它可以使用转义字符。 echo -e '\x22\x27something\x27\x22'

标签: r bash quotes double-quotes single-quotes


【解决方案1】:

使用here-document,而不是管道,这样就不需要外层的引号。

qsub -cwd <<'EOF' &
R CMD BATCH --no-save '--args "xxx.txt"' xxx.r
EOF

【讨论】:

    【解决方案2】:

    为此,我使用我所谓的 5 引号模式

     'this '"'"' that'
    

    => this ' that

     "this "'"'" that"
    

    => this " that

    【讨论】:

    • 这有点难看,但它总是有效的。使用 AZERTY 关键字,我尽量不使用反斜杠,这是一个手腕断路器 :)
    • 非常感谢!使用你的 5 引号模式,我成功地用 1000 个工作轰炸了集群!
    • 不客气 :) 虽然我觉得@chepner 的回答更优雅。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2018-04-06
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多