如何在shell脚本中注释多行命令?

如何在shell脚本中注释多行命令?

当调用长的、需要大量开关的命令时,最好将它们编写在 shell 脚本中。有没有一种简单的方法来注释此类脚本中的行?我尝试过以下方法,但都不起作用。

# the \ is also commented out, resulting in "command" and "--good-switch".
command \
  #--bad-switch \
  --good-switch \

# seems to send an extra argument to the command
command \
  \ #--bad-switch \
  --good-switch

答案1

这可能是一个选项:将命令和参数存储在数组中,然后执行

# build the command
cmd=( ls
        -F
      # -a   # comment out this option temporarily
        -l
    )
# $cmd is now an array with 3 elements

# execute it
"${cmd[@]}"

答案2

我总是在命令之后移动注释的内容。

command \
  --good-switch
# --bad-switch          with explanation here, if needed

答案3

请参阅数字罗斯的回答

另请参阅我刚刚发布的问题,bash 多行命令,在继续字符后带有注释

这将是一个有用的功能。遗憾的是它没有标准支持。

答案4

问题是在解析该行之前删除了斜杠,因此第一个命令的解析就像您编写的一样command #--bad-switch --good-switch。如果你有一个很长的命令序列,你可以例如写一个逐行注释块在其上方或下方,依次解释每个参数,或者您可以将参数存储在变量中(尽管这通常会导致使用特殊字符引用令人头疼)。

相关内容