コマンドの途中にコメントを追加できますか? [コピー]

コマンドの途中にコメントを追加できますか? [コピー]

複数の変数をエクスポートしたいので、何らかの理由で何度も呼び出さないようにexport1つのコマンドに入れることにしました。そうすれば(論理的に)速度が遅くなるでしょう(そうですか?)export

このように:

export\
       var1=a\
       var2=b\
       var3=c
       
       [ ... ]

       varn=zzz

ただし、これにより、2つの間にコメントを追加することはできません。

export\
       # Comment
       var1=a\
       var2=b # Comment \
       var3=c\
       
       [ ... ]

       varn=zzz

バックスラッシュはすべてを同じ行に入れるからです。

エクスポートする変数にどのようにコメントを付けることができますか?各変数を呼び出すことはできそうですが、exportコメントのためスクリプトが遅くなりたくありません。

繰り返しメッセージを編集する:他の質問に対する回答も私の問題を解決しましたが、ここにある回答やコメントもある程度価値があると思います。

答え1

はい、そうです。ほぼすべての場所にコマンド置換を配置し、コマンド置換内にコメントを配置できます。醜いですが効果的です。

export\
       $(# Comment
       ) \
       var1=a\
       var2=b $(# Comment 
       ) \
       var3=c

しかし、本当に他の方法で行うことができない場合は、そうします。ほとんどすべての場合、できるこれにより、コマンドを複数の部分に分割し、必要に応じて各部分に説明を追加すると、読みやすくなります。合理的な変数名を選択すると、一部のコメントが必要ない場合があります。

これは確かに成果のためにすることではありません。外部コマンドを呼び出すのは少し高価ですが、組み込みコマンドを呼び出すことはそうではありません。コマンドを分割してもexport実行に違いはないようです.zshrc。 (下でベンチマークしましたが、この行をベンチマークすると実際には影響しますが、一般的な規模では完全.zshrcに無視できます)。$(…)


export各変数を一度呼び出すよりも、各変数を呼び出す方が遅いですか?少しです。少なくとも私がテストした特定のコード、バージョン、プラットフォームの場合、違いは違いを生み出すのに十分小さいです。

% time zsh -c 'for ((i=0; i<$1; i++)) { export var1=foo var2=bar; }' 1 1000000
zsh -c 'for ((i=0; i<$1; i++)) { export var1=foo var2=bar; }' 1 1000000  1.36s user 0.24s system 99% cpu 1.612 total
% time zsh -c 'for ((i=0; i<$1; i++)) { export var1=foo; export var2=bar; }' 2 1000000                            
zsh -c 'for ((i=0; i<$1; i++)) { export var1=foo; export var2=bar; }' 2   1.67s user 0.43s system 99% cpu 2.097 total

しかし、コマンド置換を追加すると、速度が100倍遅くなります! (繰り返し回数の削減に注意してください。)

% time zsh -c 'for ((i=0; i<$1; i++)) { export var1=foo var2=bar $(); }' 3 10000
zsh -c 'for ((i=0; i<$1; i++)) { export var1=foo var2=bar $(); }' 3 10000  1.33s user 1.00s system 107% cpu 2.165 total

関連情報