【发布时间】:2016-04-19 15:56:32
【问题描述】:
根据"chdir" xopen specification,使用空字符串(“”)作为参数会导致错误(enoent):
[ENOENT]
A component of path does not name an existing directory or path is an empty string.
我已经使用命令检查了许多不同的操作系统和外壳组合;
cd ""
最终调用“chdir”系统调用,argv == 2,argv[1] 指向一个空字符串。
结果是只有 Linux(不是 AIX)上的某些 ksh93(不是所有版本)返回错误。 "/bin/sh" 总是成功,但在 AIX 上它移动到 $HOME 并且在 linux 上 cwd 不变
为什么会有这么多差异?
【问题讨论】:
-
我建议在Unix & Linux提出这个问题
-
最近在 comp.unix.shell 上讨论过这个问题:groups.google.com/forum/#!original/comp.unix.shell/J_5Wk84wO6w/…
-
@keith 感谢您的链接。那里给出的示例:
cd "$var" || exit 1 rm -rf something_important匹配完全我对该问题的担忧的来源。