Shell
從命令行呼叫兩次的程序
假設我有一個名為的(Python3)腳本
myscript
;由於各種原因,myscript
( notmyscript.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
不在$PATH
shell 的變數中,所以你需要傳遞 的完整路徑myscript
,而不是相對路徑。