程序从命令行调用两次

程序从命令行调用两次

假设我有一个自己命名的(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不在$PATHshell 的变量中,因此您需要传递 的完整路径myscript,而不是相对路径。

相关内容