我对 Shell 和 subshell 中的分词不清楚。
例子:
IFS=""
file_name="file with space"
file_name=$(real_path $file_name)
会$file_name
在子shell中分裂吗?还是我必须像这样双引号:
file_name=$(real_path "$file_name")
经过一番测试,我发现:
- 如果我设置
IFS=" "
,$file_name
则被空格分割 - 如果
IFS=""
然后将整体$file_name
作为第一个参数传递。
到目前为止,ksh、dash 和 bash 都显示了这种行为。