如何製作一個腳本,使同一資料夾中的另一個腳本可執行?

如何製作一個腳本,使同一資料夾中的另一個腳本可執行?

如何製作一個腳本,使同一資料夾中的另一個腳本可執行?我不想擔心路徑,因為它將位於同一目錄中。所以它應該是這樣的(我正在嘗試使 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

相關內容