在使用命令:./script时运行Shell脚本,但不是命令:脚本,其中PATH = .:'usr / bin':etc

我正在运行Zsh,当前目录在我的path中,但是脚本在没有./情况下不能运行

阅读在terminal中执行的这些语句以了解上下文( »是我的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不会运行它。

我知道把我的本地目录放在我的path前是一个不好的主意,但是我已经改变了path. 在最后,它不会改变任何东西。

我将不胜感激任何帮助!

关键字test是保留的,因为它实际上是一个shell内build的。 为了增加混淆,还有一个叫做test的shell 命令

改用另一个名字=)

@桑普森是完全正确的。 一个补充:检查什么你会运行使用

 type test 

,它会给你

 test is a shell builtin 

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