如何從任意目錄執行shell腳本

如何從任意目錄執行shell腳本

我在我的主目錄中編寫了一個帶有擴展名的簡單腳本.sh,我可以直接在我的主目錄中運行該腳本,但我想從我所在的每個目錄運行該腳本。

答案1

以互動方式,您始終可以透過在命令列上鍵入來運行腳本~/yourscript.sh,但這非常有限,特別是如果您想編寫更多調用您已經編寫的腳本的腳本。

一種更整合和靈活的方法是將所有腳本放入目錄並將該目錄添加到PATH環境變數中。

完成此操作後,您將能夠鍵入yourscript.sh,無論您位於哪個目錄,shell 都會找到您的腳本並執行它。

通常是這樣做的:

  1. bin在您的主目錄下建立目錄並將mv腳本放入其中。
  2. 將所有腳本變更為可執行檔 ( chmod +x)。
  3. 確保您的PATH環境變數包含您的$HOME/bin目錄。在某些系統上,預設~/.profile會自動將您的目錄新增$HOME/bin至其中PATH,因此~/.profile在修改之前請檢查您的目錄。

讓我用一些腳本來說明:

mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH"      # you should see your bin directory
cd /tmp           # change to another random directory
type myscript.sh  # see if the shell finds your scripts

如果您bin在 中看到您的目錄PATH,那麼最好登出並重新登入並更改到另一個目錄並type yourscript.sh再次執行以確保一切都正確設定。

相關內容