在 Mac OS X 上更改 bash 中 $IFS 的值时遇到了一个问题。例如,我有一个主目录/XXX/XXX/XXX,以及两个子目录subdir1和subdir2. 如果我运行 shell 脚本
maindir=/XXX/XXX/XXX;
subdirs=$(find $maindir -type d -maxdepth 1);
echo $subdirs
通常我会得到这样的结果
/XXX/XXX/XXX/subdir1 /XXX/XXX/XXX/subdir2
这两个子目录由 . 分隔Blankspace。问题是,当我改变一次这样的$IFS值时:
OLDIFS=$IFS;
IFS=$'\n';
IFS=OLDIFS;
之后,如果我们再次检查$subdirs
echo $subdirs
结果变成
/XXX/XXX/XXX/subdir1
/XXX/XXX/XXX/subdir2
似乎 bash 自动更改Blankspace 为\n. 这真的让我很困扰。有没有办法改\n回来Blankspace?我的系统是 Mac OS X 版本 10.7.5。