有沒有辦法為 bash 檔案建立命令列包裝器?

有沒有辦法為 bash 檔案建立命令列包裝器?

標題說明了一切。我想在命令列中輸入“run”,它將執行/pathtoscript/script.sh。
謝謝你!

答案1

建立一個文件,命名run為以下內容:

#!/bin/sh
exec /pathtoscript/script.sh "$@"

將檔案放在您的路徑中並設定可執行位元。

什麼是「你的路」?

在命令列中輸入:

echo $PATH

您將看到一個以冒號分隔的目錄清單。這些是 shell 在尋找要執行的命令時搜尋的目錄。它們統稱為路徑。您需要將新檔案放置run在這些目錄中的任一目錄中。

互動式工作的替代方法

如果你只想run在互動工作時工作,你可以創造一個別名:

alias run=/pathtoscript/script.sh

如果您希望永久保存此別名,請將該行放入.bashrc您的主目錄中。

答案2

在 *nix shell 中,完成此操作的方法是新增執行檔(或可執行檔的符號連結)到其中之一目錄列於PATH變數。來自假設的會話:

$ which foo
which: no foo in (/usr/local/sbin:/usr/local/bin:/usr/bin)
$ foo
bash: foo: command not found
$ echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/bin
$ sudo ln -s /path/to/my/script /usr/local/bin/foo
$ foo
[whatever your script prints]

相關內容