我对 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 都显示了这种行为。