有没有办法在使用“\”将 shell 命令分割到不同的行后进行注释?

有没有办法在使用“\”将 shell 命令分割到不同的行后进行注释?

我正在使用 arch 和 bash。一切都是最新的。

我有这个命令,效果很好

yad \
--timeout=2 \
--undecorated \
--posx=1200 --posy=633 \
--title=" " \
--window-icon='/home/$USER/.local/share/file-manager/spanner_white.png' \
--no-buttons \
--no-focus \
--text="All print jobs cancelled"; # This is a comment

;显然,我可以在命令末尾的后面发表评论,如图所示。

然而,有没有一种方法可以让我在每次发表评论后发表评论,\
似乎并非如此,但可能我只是不知道如何做。

如果不能完成此操作,bash可以使用zsh或任何其他 shell 来完成。

答案1

不,行尾的反斜杠作用于下一个字符,即换行符(将其删除)。如果添加空格和#字符,反斜杠将作用于空格(引用它),而不是换行符。您也不能在行尾添加注释然后反斜杠字符,因为该注释将有效地注释掉连续行的其余部分。

您可以做的是为参数创建一个数组,并在执行时注释它的各个部分,然后在对实用程序的调用中使用它:

yad_args=(
    # A timeout of 20 is used in testing; production uses 2.
    #--timeout=20
    --timeout=2
    --undecorated  # We don't want decorations.
    --posx=1200 --posy=633
    --title=" "   # Spacey title.
    --window-icon="${XDG_DATA_HOME:-$HOME/.local/share}"/file-manager/spanner_white.png
    --no-buttons
    --no-focus    # No focus for you!
    --text="All print jobs cancelled"
)

yad "${yad_args[@]}"

在声明数组的每个元素时yad_args,可以在行尾添加注释。

请注意,当使用调用中的数组yad,扩展必须准确引用如上所示,否则您将遇到包含空格和/或文件名通配字符的数组元素的问题。

相关内容