Shell

從命令行呼叫兩次的程序

  • December 12, 2018

假設我有一個名為的(Python3)腳本myscript;由於各種原因,myscript( not myscript.py ) 儲存在名為 的子目錄中bin

mydir/
mydir/bin/
mydir/bin/myscript       -rwxr-xr-x

myscript通常的 shebang 行開始,即:

#!/usr/bin/env python3

當我在時mydir/,我以這種方式呼叫我的腳本:

$ ./bin/myscript

結果很誘人(對我來說!),myscript被叫了兩次!我得到類似的東西:

sh: 1: myscript: not found
*** specific message defined in myscript ***

第一行顯然表明 shell 試圖找到一個名為myscript. 第二行是我寫的myscript

為什麼我的腳本被呼叫兩次?

@Kusalananda 提到您的腳本可能正在myscript使用system(). 當你打電話時,system我猜想包含的目錄myscript不在$PATHshell 的變數中,所以你需要傳遞 的完整路徑myscript,而不是相對路徑。

引用自:https://unix.stackexchange.com/questions/487664