当我将IFS
变量设置为一个空格时,bash
将多个空格视为一个空格(这myprogram
是一个打印收到的命令行参数的程序):
IFS=" "
x="hello hi world"
./myprogram $x
argv[1] = hello
argv[2] = hi
argv[3] = world
但是,当我将IFS
变量设置为逗号时,bash
不要将多个逗号视为一个逗号:
IFS=","
x="hello,,,hi,,,world"
./myprogram $x
argv[1] = hello
argv[2] =
argv[3] =
argv[4] = hi
argv[5] =
argv[6] =
argv[7] = world
这是为什么?
仅供参考,“ IFS”表示内部场分隔符。
—
pr1268