lazynickさんの投稿にて":"が使われていた。
スクリプトの気になる部分を抜き出すと
#!/bin/env bash
for ((i=0; i<3; i++));do
: $((NUMBER_PROCESS++))
echo $NUMBER_PROCESS
done
":"の意味があまり理解できていなかった。
m-yamashitaさんの投稿に":"を使う例がいくつかある。
: というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。
...
試しに":"を抜いたもので実行すると
#!/bin/env bash
for ((i=0; i<3; i++));do
$((NUMBER_PROCESS++))
echo $NUMBER_PROCESS
done
実行結果
... 0: command not found
... 1: command not found
... 2: command not found
理解できた。
":"がない時は、((NUMBER_PROCESS++))された結果(例:0)がコマンドとして実行されようとしてエラーとなる。
":"をつけることで、コマンドとしては実行せず、加算++だけするということのようだ。
man setで下記の説明がある。
: [arguments]
No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned.