【问题标题】:bash: nested double quote and dollar signbash:嵌套的双引号和美元符号
【发布时间】:2019-07-16 18:30:43
【问题描述】:
sh -c "$(curl -Ls "https://my-domain.com/a.sh?v=$(date +%s)")"

我想执行一个远程 sh 文件并确保没有使用缓存。

我知道上面的命令可以工作,但是当我把它放在 Markdown 文档上时,它对语法高亮不友好。

嵌套双引号和$符号命令的正确写法是什么?

【问题讨论】:

  • 这是语法高亮的问题,而不是你的代码。它源于大多数语法高亮显示使用正则表达式以提高速度和简单性的事实,并且通过命令替换建立的新引用上下文是非常规的。
  • 对于这种情况,您可以避免嵌套并执行curl -Ls ... | sh
  • 喜欢$(…) 而不是反引号的原因之一是它可以嵌套(如您的示例)

标签: bash syntax syntax-highlighting


【解决方案1】:

这是正确的方法。如果语法高亮器没有正确高亮它(例如在 Stack Exchange 上,大声笑),那是语法高亮器的错误。 chepner解释in the comments

这是语法高亮的问题,而不是您的代码。这是因为大多数语法高亮显示使用正则表达式是为了速度和简单性,并且通过命令替换建立的新引用上下文是非常规的。

但是,正如William Pursell 所说的in the comments

对于这种情况,您可以避免嵌套并执行curl -Ls ... | sh

curl -Ls "https://my-domain.com/a.sh?v=$(date +%s)" | sh

相关

【讨论】:

    猜你喜欢
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    相关资源
    最近更新 更多