bash - 续行+行注释,在同一行?

标签 bash shell sh

<分区>

我的 shell 脚本中有一个带有很长参数列表的调用:

foo-command \
    --important-argument $ONE \
    --indispensable-flag $ENABLED \
    --an-optional-toggle "will probably be commented out some day" \
    $ARGUMENTS \
    $MORE_ARGUMENTS

我不能在这个多行调用中插入注释吗?

例如,我如何注释掉 --an-optional-toggle 行?
如何在 $ARGUMENTS 之后添加 # in sorted order 注释?

无论我尝试什么,octothorp # 符号阴影线延续反斜杠 \,反之亦然。有什么建议吗?

最佳答案

不可以,但是您可以将参数存储在数组中。这使您既可以注释掉单个行,也可以包含穿插的注释。

args=( --important-argument "$ONE"
       --indispensable-flag "$ENABLED"
       # --an-optional-toggle "will probably be commented out some day"
       $ARGUMENTS  # in sorted order
       $MORE_ARGUMENTS
     )
foo-command "${args[@]}"

请注意,您几乎肯定还想制作ARGUMENTSMORE_ARGUMENTS 数组,因此args 最终看起来像

args=( --important-argument "$ONE"
       --indispensable-flag "$ENABLED"
       # --an-optional-toggle "will probably be commented out some day"
       "${ARGUMENTS[@]}"  # in sorted order
       "${MORE_ARGUMENTS[@]}"
     )

关于bash - 续行+行注释,在同一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529245/

相关文章:

linux - 使用 for 循环 seq 分配动态 bash 变量名

linux - 如何使用 Bash 解析 HTTP header ?

bash - 使用 awk 在字符串中查找值

linux - 如何删除 shell 脚本中字符串中所有出现的点?

linux - unix & gnu/linux 发行版 : possible locations for 'which' command?

java - 使用 Shell 脚本检查进程

bash - 代入局部变量时函数的返回值

mysql - 抑制 ubuntu 中的 stdout 警告消息

python - anacron 是否已针对 Mac 弃用?为什么我在运行 anacron 时看不到任何输出?

linux - 如何根据第一个脚本的结果从另一个 shell 脚本调用 shell 脚本?