アップデート
以下の元の説明には多くのエラーがあります。gawk lintは、のRHSとして使用される初期化されていない配列について文句を言いませんin
。たとえば、次の例ではエラーや警告は表示されません。私が受け入れようとしている答えはsplit
、空の文字列を使用して空の配列を作成することを示唆しているため、質問を削除していません。
BEGIN{
LINT = "fatal";
// print x; // LINT gives error if this is uncommented
thread = 0;
if (thread in threads_start) {
print "if";
} else {
print "not if";
}
}
元の質問
私のawkスクリプトの多くには、次のような構成があります。
if (thread in threads_start) { // LINT warning here
printf("%s started at %d\n", threads[thread_start]));
} else {
printf("%s started at unknown\n");
}
そのgawk --lint
結果、
警告:初期化されていない変数`thread_start'への参照
したがって、次のようにBEGINブロックで初期化します。しかし、これはごちゃごちゃに見えます。ゼロ要素配列を作成するためのより洗練された方法はありますか?
BEGIN { LINT = 1; thread_start[0] = 0; delete thread_start[0]; }