8

bashスクリプトで長いパイプラインを作成することは非常に強力であることがわかりましたが、私が目にする主な欠点は、コメントを挿入する方法がないように見えることです。

例として、このスクリプトにコメントを追加する良い方法はありますか?

#find all my VNC sessions
ls -t $HOME/.vnc/*.pid                  \
    | xargs -n1                         \
    | sed 's|\.pid$||; s|^.*\.vnc/||g'  \
    | xargs -P50 --replace vncconfig -display {} -get desktop \
    | grep "($USER)"                    \
    | awk '{print $1}'                  \
    | xargs -n1 xdpyinfo -display       \
    | egrep "^name|dimensions|depths"
4

4 に答える 4

24

パイプを各行の最後の文字とし、次のよう#にの代わりに使用します。\

ls -t $HOME/.vnc/*.pid | #comment here
   xargs -n1 | #another comment 
   ...
于 2011-02-24T05:42:14.243 に答える
1

非常に長いパイプラインでない限り、インラインでコメントする必要はありません。上部にコメントするだけです。

# Find all my VNC sessions.
#   xargs does something.
#   sed does something else
#   the second xargs destroys the universe.
#   :
#   and so on.

ls -t $HOME/.vnc/*.pid                  \
    | xargs -n1                         \
    | sed 's|\.pid$||; s|^.*\.vnc/||g'  \
    | xargs -P50 --replace /opt/tools/bin/restrict_resources -T1 \
            -- vncconfig -display {} -get desktop 2>/dev/null \
    | grep "($USER)"                    \
    | awk '{print $1}'                  \
    | xargs -n1 xdpyinfo -display       \
    | egrep "^name|dimensions|depths"

コメントが比較的ローカライズされている限り、問題ありません。したがって、ファイルの先頭にそれらを配置したり (もちろん、パイプラインがファイルの最初にある場合を除きます)、トイレット ペーパーに走り書きしたり、職場の机に閉じ込めたりしません。

しかし、ブロックを見るときに最初にすることは、ブロックの直前のコメントを探すことです。C コードでも、すべての行にコメントを付けることはしません。コメントの目的は主にwhyと 高レベルの を示すことだからですhow

于 2011-02-24T05:46:37.363 に答える
0
#!/bin/bash

for pid in $HOME/.vnc/*.pid; do
    tmp=${pid##*/}
    disp=${tmp%.*}
    xdpyinfo -display "$disp" | # commment here
    egrep "^name|dimensions|depths"
done

vncconfigへの呼び出しのために後で削除する '(user)' を追加するだけの場合の必要性を理解していませんxdpyinfo。また、これらすべてのパイプにはかなりのオーバーヘッドがかかりますtime。スクリプトと私のスクリプトを比較すると、パフォーマンスは同等であることがわかります。

于 2011-02-24T18:00:08.940 に答える