我在Shell和子shell中有关于单词拆分的信息不清楚。
示例:
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都显示了这种行为。
答案 0 :(得分:2)
由于您在分支子shell之前将IFS设置为空字符串,因此它不会分词,但您仍然需要引用它以防止路径名扩展。