環境変数 POSIXLY_CORRECT
RHEL3に含まれているような古いwcコマンド(ver.4.5.3)を使っている場合、
$ cat test.sh #!/bin/sh cnt=`cat somefile.txt | wc -l` echo "cnt=${cnt}" echo cnt=${cnt} echo ${cnt} $
といったスクリプトを実行すると、
cnt= 6 cnt= 6 6
のように空白が含まれてしまう場合があります。man wcによると
POSIX の注意 wc は 7 桁のフィールドに右詰でカウント数を表示する。しかし POSIX は、カ ウ ントの間 (と最後のファイル名との間) にはスペース一つだけをおくように 命じている。後者のフォーマットは、環境変数 POSIXLY_CORRECT を指定する と得られる。
とあり、カウント数は7桁固定っぽいです。そこで環境変数 POSIXLY_CORRECTを設定してやるとうまくいきます。
export POSIXLY_CORRECT= ./test.sh cnt=6 cnt=6 6
ちなみに、CentOS4.4のwc(ver.5.2.1)では、特に設定する必要はありません。