
我在我的主目錄中編寫了一個帶有擴展名的簡單腳本.sh
,我可以直接在我的主目錄中運行該腳本,但我想從我所在的每個目錄運行該腳本。
答案1
以互動方式,您始終可以透過在命令列上鍵入來運行腳本~/yourscript.sh
,但這非常有限,特別是如果您想編寫更多調用您已經編寫的腳本的腳本。
一種更整合和靈活的方法是將所有腳本放入目錄並將該目錄添加到PATH
環境變數中。
完成此操作後,您將能夠鍵入yourscript.sh
,無論您位於哪個目錄,shell 都會找到您的腳本並執行它。
通常是這樣做的:
bin
在您的主目錄下建立目錄並將mv
腳本放入其中。- 將所有腳本變更為可執行檔 (
chmod +x
)。 - 確保您的
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
再次執行以確保一切都正確設定。