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