如何在 macOS 上透過腳本執行終端命令

要在 macOS 上透過腳本執行終端命令,請將它們放入純文字 shell 腳本中,使其可執行,然後從 Finder 或終端機運行它。您可以使用.command擴充功能透過雙擊打開它。腳本不會繞過 macOS 的隱私控製或授予管理員權限。

純文字編輯器視窗顯示了 MyScript.command 中的 zsh shebang 和 echo 命令。
一個簡短的 shell 腳本以 shebang 開頭,該 shebang 選擇 zsh。

1. 將指令寫入純文字文件

shell 腳本是一個包含指令的文字檔。它以shebang開頭,shebang 是第一行,它告訴 macOS 應該使用哪個 shell 來解釋該檔案。目前,新建終端機視窗的預設 shell 是 zsh,但管理員可以設定不同的預設 shell,如 Apple 在其終端指南中所述。以下範例明確使用了 zsh:

#!/bin/zsh
# Print a message when the script runs
echo "Script is running"

將指令放在 shebang 行下方的單獨幾行。 shebang 用於選擇解釋器,因此請使用其支援的語法;例如,Bash 腳本可以以 `--bash-script` 開頭#!/bin/bash。蘋果公司的shell 腳本指南解釋了基本概念。

您可以使用 TextEdit,但請確保文件為純文字格式:新建的 TextEdit 文件可能是富文本格式。選擇「格式」>「設為純文字」,或在 TextEdit 的設定中將新文件格式設定為「純文字」。富文本格式並非 shell 程式碼。 Apple 在其TextEdit 指南中對這些選項進行了詳細說明。程式碼編輯器或命令列編輯器(例如 npm)nano也可以實現此功能。

macOS 儲存對話框,其中 MyScript.command 被選中為桌面上的純文字檔案。
將腳本以 .command 副檔名儲存到您可以找到的位置。

.command2. 使用副檔名儲存它

將純文字檔案儲存為描述性名稱,例如MyScript.command`.bashrc`。該副檔名有助於 Finder 在您雙擊該檔案時在終端機中開啟腳本。 Apple 的開發者文件檔案中描述了這種雙擊 shell 腳本的工作流程。檢查 Finder 中的最終檔名:如果它以 `.bashrc` 結尾.command.txt,請將其重新命名,使最終副檔名僅為 ` .command.bashrc`。在設定過程中,請將範例檔案儲存在桌面等位置。

如果 macOS 詢問要使用哪個擴展,請保留.command並確認 Finder 沒有新增.txt。

3. 使腳本可執行

開啟終端並授予您的帳戶執行該文件的權限。例如,對於保存在桌面上的文件,請輸入:

chmod u+x "$HOME/Desktop/MyScript.command"

按下回車鍵。u+x這將為擁有者新增執行權限;帶引號的路徑包含空格。如有需要,請替換範例路徑。將檔案拖入終端,或使用 Finder 的 Option 鍵點選選單複製其路徑名稱。蘋果在其可執行檔說明中也展示了相同的方法。

終端機視窗顯示已對桌面 MyScript.command 檔案套用 chmod u+x 指令。
chmod 指令為檔案擁有者新增執行權限。

4. 運行腳本

在 Finder 中雙擊MyScript.command即可在終端機運作。輸出和錯誤訊息會顯示在終端機中。或輸入其完整路徑:

"$HOME/Desktop/MyScript.command"

或先切換到資料夾,然後在檔案名稱前加上冒號./:

cd "$HOME/Desktop"
./MyScript.command

這./條指令告訴 shell 要執行目前資料夾中的檔案。蘋果的終端命令指南解釋如何透過路徑名運行可執行檔。

終端機視窗正在執行 MyScript.command,並顯示輸出「腳本正在運行」。
透過文件路徑運行該文件,並在終端機中檢查輸出。

排除常見錯誤

  • 「權限被拒絕」:請檢查您是否chmod u+x在正確的檔案上執行了命令。如有必要,請使用檔案的確切路徑重複該命令。將檔案設定為可執行並不意味著授權執行檔中的所有命令。
  • 「沒有該檔案或目錄」:請確認檔案位置和拼寫,包括檔案副檔名。誤保存的文件MyScript.command.txt將與上述命令不符。將檔案拖入終端有助於輸入其路徑。
  • 手動輸入命令可以正常運行,但在腳本中卻不行:腳本可能使用了不同的 shell,或依賴別名、環境變數或互動式終端會話中的工作目錄。請使用正確的 shebang,避免使用別名,並明確指定檔案路徑。如果命令需要特定的資料夾,請cd在腳本開頭附近新增對應的行。

分享前請先了解權限

執行權限與隱私權限是分開的。腳本通常以您的帳戶身份執行;sudo僅用於需要管理員權限的命令。

macOS 可能會要求存取受保護的資料夾或其他應用程式。請仔細審核每個請求,僅允許必要的權限。檢查“蘋果選單”>“系統設定”>“隱私與安全”,以了解“文件與資料夾”及相關隱私設定。權限授予取決於請求的存取權限和請求的應用程式;並非針對特定命令的通用權限,也不會隨共享腳本一起傳遞。

在運行或共享腳本之前,請仔細閱讀每一行程式碼,確保您瞭解其作用。.command文件之所以方便,是因為打開即可運行,因此請僅使用來自可信任來源的文件。

留下評論

如何在 Mac 上截圖:完整指南

如何在 Mac 上截圖:完整指南

學習如何在 Mac 上使用快捷鍵截圖(全螢幕、區域或視窗),以及截圖應用程式、剪貼簿、編輯和儲存位置技巧。

如何在 macOS 上向單一 PDF 檔案中新增多個影像

如何在 macOS 上向單一 PDF 檔案中新增多個影像

在 macOS 系統中,使用 Finder 或預覽程式將多張圖片合併成一個 PDF 檔案。無需額外軟體,即可控制頁面順序、避免裁切並修復缺失頁面。

如何在 macOS 上查看 FPS:Steam 和 Apple 的 Metal HUD

如何在 macOS 上查看 FPS:Steam 和 Apple 的 Metal HUD

了解如何在 Mac 上使用 Steam 的效能疊加層或 Apple 的 Metal Performance HUD 顯示 FPS,以及計數器不顯示時的解決方法。

如何在 Mac 上強制退出:關閉應用程式的 5 種快速方法

如何在 Mac 上強制退出:關閉應用程式的 5 種快速方法

使用 Option–Command–Esc 強制退出無回應的 Mac 應用程序,或從 Apple 選單、Dock、活動監視器或終端將其關閉。

如何在 Mac 上使用分割畫面功能:將兩個應用程式並排顯示

如何在 Mac 上使用分割畫面功能:將兩個應用程式並排顯示

設定分割畫面檢視、調整窗格大小或取代窗格、使用排程中心,並了解桌面視窗平鋪何時更適合您的 Mac。

如何在 macOS 上從照片中刪除 EXIF 數據

如何在 macOS 上從照片中刪除 EXIF 數據

了解如何從 macOS 上的照片中刪除 EXIF 資料、在「照片」中隱藏位置、使用 ExifTool 清理匯出的 JPEG 副本,並驗證結果。

如何在Mac上安全同步兩個資料夾

如何在Mac上安全同步兩個資料夾

使用 SyncTwoFolders 在 Mac 上同步兩個資料夾,選擇單向或雙向更新,並在檔案被取代或刪除之前預覽變更。

如何在Mac上備份Tumblr博客

如何在Mac上備份Tumblr博客

使用 Tumblr 的網頁匯出功能,在 Mac 上備份 Tumblr 部落格。下載並解壓縮 ZIP 文件,即可安全保存部落格文章和媒體文件,並了解備份文件中遺漏了哪些內容。

如何在 Mac 桌面上使用 Google 地圖

如何在 Mac 桌面上使用 Google 地圖

在 macOS Sonoma 14 或更高版本中,您可以在 Mac 上的 Safari 或 Chrome 瀏覽器中使用 Google 地圖,尋找地點和路線,切換地圖圖層,並將 Safari 網路應用程式新增至 Dock 欄。

適用於 Windows 和 macOS 的 5 款最佳免費 WAV 轉 MP3 轉換器

適用於 Windows 和 macOS 的 5 款最佳免費 WAV 轉 MP3 轉換器

比較五款適用於 Windows 和 macOS 的免費 WAV 轉 MP3 轉換器,包括線上檔案限制、本機批次工具和實用匯出設定。