jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj(j32)

vi使っていると、他アプリでjを連打していることがある。

[bash]forコマンドループ内で「ワイルドカード指定自体」を対象としない方法

2011-05-04 00:15:56 | 日記
CentOS 5.5にて確認。
for コマンドでワイルドカード指定する場合、マッチするファイルがないとワイルドカード指定自体が対象となってしまう。

$ ls
$
$ for f in *.txt;do echo $f;done
$ *.txt

偶然にも、そうしないようにする方法を見つけた。

$ shopt -s nullglob
$ for f in *.txt;do echo $f;done
$

shoptコマンドで nullglobオプションを設定すればいいのか。
元の設定に戻したい場合は、shopt -u nullglob。

$ shopt -u nullglob
$ for f in *.txt;do echo $f;done
$ *.txt

元ネタ
Uncompress multiple .zip .gz or .bz2