とにかく書く

日々の雑感や知り得たことを、とにかく書いています

シェルスクリプトで半角スペースを含むファイル名を扱う

Bashシェルスクリプトで半角スペースを含むファイル名を扱うには、環境変数 IFS (Internal Field Separator) を改行だけにすればよい。

#!/bin/sh

IFS_BACKUP=$IFS
IFS=$'\n'

# スクリプトをここに書く

IFS=$IFS_BACKUP

滅多に遭遇しないながらも、ずっと昔から困っていた。昔は Windows からリネームソフトを使ったり、Emacs の wdired でスペース無しに置換したりしていた。さっそく Emacs の sh ファイルのテンプレートに追加した。