[シェルスクリプト] 未初期化と空文字列で初期化の違い

自前で動かすデーモンとかが増えてきたので、CentOSの/etc/init.d/functionsをまともに理解しとこうと思って読んでいると、以下のようなコードが見つかりました。

status() {
	local base pid lock_file= pid_file=

	# Test syntax.
	if [ "$#" = 0 ] ; then
		echo $"Usage: status [-p pidfile] {program}"
		return 1
	fi
	...

4つの変数が宣言されていて、そのうちbaseとpidは未初期化、残りの2つは空文字列で初期化されています。まさか/etc/init.d/functionsのような枯れきっているコードにミスなんかは残ってないと思ったので調べてみました。

Continue reading “[シェルスクリプト] 未初期化と空文字列で初期化の違い”