【发布时间】:2010-12-20 15:33:47
【问题描述】:
其实我完全理解$*和$@的用法。
例如,如果我使用以下命令运行脚本:my_script *
那么,对于 $@ 中的 ONE_FILE,将真正将每个文件放入 ONE_FILE 中进行处理。
即使文件名中有空格,ONE_FILE 也会得到正确的文件名。
但是,如果在 $* 中使用 for ONE_FILE,情况就不同了。
我想你们理解其中的区别,我不需要更进一步。
现在,我感兴趣的是如何。
KornShell (ksh) 如何解释 my_scrpt *
然后将文件名正确传递到 $@
并将文件名传递给 $*.
例如,当 ksh 看到 my_script *
,它是否将文件名一一放入数组中,
然后将数组[1][2][3]...放入$@进行处理?
而且,当看到 $* 时,它只是 concat
文件名1+空格+文件名2+空格+...?
我知道这可能更多地与 ksh 的内部编码有关。
有什么见解吗?
【问题讨论】: