今天在處理文件時(shí)遇到個(gè)問題,當(dāng)文件名包含空格時(shí)矾削,for循環(huán)就出問題了彰亥。
例如,我在當(dāng)前文件夾下建立3個(gè)文件名包含空格的文件:
touch "test 1"
touch "test 2"
touch "test 3"
然后for循環(huán)輸出文件名:
$ for file in ls
;
do echo $file;
done
test
1
test
2
test
3
可以看到递宅,文件名被分開了。
要解決這個(gè)問題苍狰,當(dāng)然就要從單詞分隔符著手办龄。而bash中使用的是$IFS(Internal Field Separator)這個(gè)變量,內(nèi)容為" \n\t":
[root@master guoneizidian]# echo "$IFS" | od -t x1
0000000 20 09 0a 0a
0000004
然后把它改成"\n\b"淋昭,記得修改前先保存一下:
SALVEIFS=$IFS
IFS=$(echo -en "\n\b")
IFS=$SAVEIFS
image.png