如何製作一個腳本,使同一資料夾中的另一個腳本可執行?我不想擔心路徑,因為它將位於同一目錄中。所以它應該是這樣的(我正在嘗試使 D3GO 腳本可執行):
#!/bin/bash
chmod +x "$pwd"/D3GO
我對腳本很陌生,所以請不要笑:D 謝謝!
答案1
當您運行bash
腳本時,它的所有命令都在調用腳本的目錄中運行,包括pwd
.例如:
#!/bin/bash
pwd
如果您從 執行此命令,無論腳本放置在何處,/whatever/path
它都會顯示。/whatever/path
如果您想要對執行腳本的目錄中的檔案進行操作,可以pwd
這樣省略:
chmod +x D3GO
這將被解釋為就像chmod +x /whatever/path/D3GO
您從 運行它一樣/whatever/path
,無論腳本實際放置在哪裡。
若要在腳本所在目錄進行操作,可以使用該$BASH_SOURCE
變數。它是一個數組,它的第一個元素是腳本本身的路徑(即/script/directory/myscript.sh
)。您可以將其與dirname
命令結合以獲取目錄:
chmod +x `dirname ${BASH_SOURCE[0]}`/D3GO
D3GO
這將在放置此腳本的目錄中查找,而不是在調用它的目錄中查找。 (感謝@muru 指出我的錯誤。)
答案2
你們非常接近!
#!/bin/bash
chmod +x D3GO