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

uli*_*tko 9 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
Run Code Online (Sandbox Code Playgroud)

我不能在这个多行电话中插入评论,可以吗?

例如,让我们说,我该如何评论该--an-optional-toggle线?
我怎么能# in sorted order在之后添加评论$ARGUMENTS

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

che*_*ner 7

不,但您可以将参数存储在数组中.这允许您注释掉单个行以及包含散布的注释.

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[@]}"
Run Code Online (Sandbox Code Playgroud)

请注意,您几乎肯定也想制作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[@]}"
     )
Run Code Online (Sandbox Code Playgroud)


lxg*_*lxg 6

尝试在之前对同一问题的回复中提出反引号评论 .

在您的情况下,这将是:

foo-command \
    --important-argument $ONE \
    --indispensable-flag $ENABLED \
    `#--an-optional-toggle "will probably be commented out some day"` \
    $ARGUMENTS \
    $MORE_ARGUMENTS
Run Code Online (Sandbox Code Playgroud)

  • 请注意,注释行本身并不包含命令替换,因为它们仍会扩展。 (2认同)