1

我正在运行 Zsh,我的当前目录在我的路径中,但是在没有使用时脚本不会运行./

阅读在我的终端中执行的这些语句以了解上下文(这»是我的 shell 提示符):

» ls
Makefile node_modules  package.json  README.md  src test  tst
» echo $PATH
.:[all_my_other_directories]
» cat test
echo "test";
nodeunit tst/
» ./test                                                                                                                                               
test
OK: 2 assertions (1ms)
» test
» which test
./test

请注意,在which test指向正确位置的点上,但test不运行它。

我知道将我的本地目录放在我的路径前面是一个坏主意,但我已经将路径更改为.最后,它并没有改变任何东西。

我将不胜感激任何帮助!

4

2 回答 2

3

该关键字test是保留的,因为它实际上是一个内置的 shell。更复杂的是,还有一个 shell命令也称为test.

请改用其他名称 =)

于 2012-11-28T20:44:47.963 回答
2

@sampson-chen 完全正确。一个补充:检查您将运行的确切内容

type test

,它会给你

test is a shell builtin

从而解决问题。不要使用which,它总是寻找命令。type相当于whence -v因此您可以使用前者。

于 2012-11-28T20:52:24.653 回答