"\"を使用してシェルコマンドを別の行に分割してコメントアウトする方法はありますか? [コピー]

アーチとバッシュを使っています。すべてが最新の状態です。

このコマンドがありますが、うまくいきます

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

ベストアンサー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、拡張上記のように正確に引用する必要があります。そうしないと、空白および/またはファイル名のワイルドカード文字を含む配列要素に問題が発生します。

おすすめ記事