假设我有一个自己命名的(Python3)脚本myscript
;由于各种原因,myscript
(不是 myscript.py
) 存储在名为 的子目录中bin
:
mydir/
mydir/bin/
mydir/bin/myscript -rwxr-xr-x
myscript
开始于通常的舍邦线,即:
#!/usr/bin/env python3
当我进入时mydir/
,我这样调用我的脚本:
$ ./bin/myscript
结果很诱人(对我来说!),myscript
被叫了两次!我得到类似的东西:
sh: 1: myscript: not found
*** specific message defined in myscript ***
第一行显然是 shell 尝试查找名为 的命令的标志myscript
。第二行是我写的myscript
。
为什么我的脚本被调用两次?
答案1
@Kusalananda 提到您的脚本可能正在myscript
使用system()
.当您调用时,system
我猜测 的包含目录myscript
不在$PATH
shell 的变量中,因此您需要传递 的完整路径myscript
,而不是相对路径。