從多個資料夾執行腳本看似簡單,但實際操作起來卻比你想像的更容易出錯。也許你正在處理多個腳本執行任務,或者只是想讓檔案跨目錄組織起來,突然意識到無法直接輸入檔案名稱來運行它,因為它不在當前目錄中。又或者權限設定很麻煩。總之,本指南介紹了一些在其他地方執行腳本的實際方法——當然,因為 Linux 和 *nix 系統喜歡把事情弄得複雜。希望它能幫你省去一些麻煩。

如何在 Linux 或 Unix 中從其他目錄執行腳本

使用腳本的完整路徑

這是最簡單、最實用的方法。如果你知道腳本的具體位置,只需在終端機中輸入完整路徑即可。例如,如果你的腳本位於/home/user/scripts/myscript.sh,只需執行:

/home/user/scripts/myscript.sh

但別忘了——你的腳本必須是可執行的,否則 Linux 會拋出權限錯誤。你可以使用以下命令檢查:

ls -l /home/user/scripts/myscript.sh

如果您看到類似這樣的內容-rw-r--r--,並且x執行時沒有內容,則需要使其可執行:

chmod +x /home/user/scripts/myscript.sh

在某些設定中,權限變更可能會在第一次失敗或需要重啟,因此如果存在所有權問題,額外的「sudo」可能會有所幫助。一旦可執行,運行完整路徑就像變魔術一樣——並且可以避免很多混亂。

更改腳本目錄

如果您在同一個資料夾中執行多個腳本或想要保持整潔,只需先更改目錄:

cd /home/user/scripts

然後執行以下腳本:

./myscript.sh

這在互動式工作時會更簡潔一些,因為它就像「停留在該資料夾」模式。只是不要忘記./前綴——Linux 不會自動在你的 PATH 中查找它。

專業提示:如果您的腳本未標記為可執行但您信任它,則可以bash直接運行它:

bash myscript.sh

這可以繞過權限,但要將其與值得信賴的腳本一起使用 – 因為當然,Linux 有時必須使其比應有的更難。

使用 Bash 命令從任何地方運行腳本

如果您想要一種快捷方式而又不必過多擔心權限,只需運行:

bash /home/user/scripts/myscript.sh

無論腳本是否可執行,此方法都有效,這在測試或趕時間時非常方便。說實話,在某些機器上,這種方法感覺更快,但對於頻繁使用來說,它有點不太整潔。

額外提示和常見問題

  • 在點擊「執行」之前,務必仔細檢查腳本是否有錯誤,尤其是在涉及權限或路徑的情況下。沒有什麼比腳本中隱藏的拼字錯誤更能影響生產力了。
  • 如果您經常在同一個目錄中執行腳本,請考慮將該目錄新增至PATH。這樣,您只需輸入腳本名稱即可運行腳本,而不必每次都記住完整路徑。
  • 如果出現問題,請嘗試執行 進行偵錯bash -x /path/to/yourscript.sh。它會在執行每個命令之前將其列印出來,這對於捕獲隱藏的錯誤非常有用。

包起來

熟練地在不同的資料夾中執行腳本是一項必備的 Linux 技能。無論是透過完整路徑、更改目錄或直接運行bash,這些方法都能幫助維持一切的靈活性。隨著時間的推移,你會找到最適合你工作流程的組合。說實話,一旦你習慣了,就會感覺非常自然——就像第二天性一樣。嗯,基本上就是這樣。

常見問題

我可以運行用 Bash 以外的語言編寫的腳本嗎?

完全正確。只需指定解譯器即可。例如,對於 Python 腳本,您可以運行python /path/to/script.py。同樣的原則也適用於 Perl、Ruby 或任何其他語言。

如果我收到「權限被拒絕」錯誤怎麼辦?

這通常是因為腳本未標記為可執行檔。只需運行即可chmod +x /path/to/script。有時,如果權限被鎖定,則可能需要在前面加上「sudo如果權限被鎖定,則需要執行」。

有沒有辦法在系統啟動時自動執行腳本?

是的,您可以透過systemd服務檔案將腳本新增到系統啟動中,或將它們放入cron中(就像 一樣crontab -e),或者對於較舊的系統,可以使用 init 腳本。但那是另一個故事了。

概括

  • 完整路徑運行腳本快速而粗糙。
  • 更改目錄可使多個腳本保持整​​潔。
  • 使用bash類似於權限作弊程式碼的方式。
  • 權限很重要—確保腳本是可執行的。
  • 將目錄加入PATH可以簡化重複的任務。

希望這能有所幫助