LoginSignup
1
1

More than 5 years have passed since last update.

bash > 式の前の":(コロン)"の使用

Last updated at Posted at 2015-05-23

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.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1