ファイル名に空白とか入っていると、ファイル名のリストが入った引数の変数をforで回したときに、空白でファイル名が分割されちゃって期待した動きにならないよね。 ファイル名に空白てかスペースがあっただけで処理で躓くって、シェルスクリプトってショボ過ぎじゃん。シェル力はもったいない IFS環境変数を使え 対策はフィールドセパレータ環境変数を設定するだけの事で、具体的にはIFSに改行をセットすれば良い。 IFSに改行(\n)をセットすることで、入力の一行を一ファイル名として容易に処理することが可能。 なお、IFS(IFS変数)とはInternal Field Separatorであり、安心の標準機能。 #!/bin/bash IFS=" " for FILE in `find . -type f -print` do md5sum "$FILE" done > hoge.txt (上記の場合重要な
![[覚書]シェルスクリプトでスペースや空白を含むファイル名を処理したいの対策](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)