8
$ *和$ @有什么区别?
考虑以下代码: foo () { echo $* } bar () { echo $@ } foo 1 2 3 4 bar 1 2 3 4 它输出: 1 2 3 4 1 2 3 4 我正在使用Ksh88,但是我也对其他常见的shell感兴趣。如果您碰巧知道特定外壳的任何特殊性,请提及它们。 我在Solaris的Ksh手册页中发现了以下问题: $ *和$ @的含义在不加引号或用作参数分配值或文件名时相同。但是,当用作命令参数时,$ *等效于``$ 1d $ 2d ...'',其中d是IFS变量的第一个字符,而$ @等效于$ 1 $ 2 .... 我尝试修改IFS变量,但没有修改输出。也许我做错了什么?