更具体地说,我的意思是:
假设我有一个名为test.py的python脚本,第一行有一个正确的shebang,比如说
#!/usr/bin/env python
print 'this works'
在shell中,当我输入:
$ test.py
什么都没发生,但是当我输入时:
$ ./test.py
调用该命令并打印“this works”。
为什么?我想 ”。”只是意味着当前目录。为什么有一个./突然意味着我们想要执行接下来的任何事情?感谢。
答案 0 :(得分:4)
shell只查找路径中的可执行文件(在shell中尝试echo $PATH
以查看其值)。如果.
不在路径中,则必须提供可执行文件的显式路径。在路径中没有.
是一个好主意:想象有人设法在您的主目录中放置一个名为ls
的可执行文件!
答案 1 :(得分:1)
因为当前目录(您保存test.py
的位置)不在您的$PATH
环境变量中。
$PATH
。