在使用命令:./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
因此可以使用前者。