如何使用applescript將bash指令碼轉換為可單擊的應用程式

Bash指令碼很強大,但並不總是很方便。下面是AppleScript如何將Bash命令轉換為可單擊的應用程式。...

假設你是一個bash腳本嚮導,喜歡為不太懂技術的朋友和家人自動化任務。即使你給了他們一個腳本,完全解決了他們的問題,他們可能仍然擔心自己使用終端。在這種情況下,您不妨手動為它們執行所有操作。

bash-script-applescript

幸運的是,AppleScript是一種用戶友好的語言,它可以輕鬆地將腳本轉換為可共享和GUI友好的內容。

applescript入門

AppleScript是一種古老的編程語言,可以追溯到MacOS7。它是在20世紀80年代按照用戶標準設計的一種簡單易讀的語言,其主要目的是與Finder交互以實現工作流自動化。

您可以使用它來執行復雜的工作流,例如bash腳本或修改首選項文件,並將其簡化為只需單擊按鈕即可。您還可以以文件的形式進行輸入,並將其拖放到文件上。

注意:從我們的AppleScript語法和工作流入門指南開始。

Utilities文件夾中的腳本編輯器工具是一個AppleScript文本編輯器和IDE,它將幫助您編寫實用的AppleScript。它的“幫助”菜單欄項是非常寶貴的資源。使用它加載AppleScript語言指南。

您還可以轉到“窗口”>“庫”以獲取每個可能的AppleScript命令的列表。

使用applescript使bash腳本可單擊

Bash可以幫助你以一種外科的、超特定的方式與Mac交互。幾乎可以編寫任何你想對你的機器做的事情。

通常,如果要運行bash腳本,必須確保它具有可執行權限。然後您必須打開終端,導航到腳本路徑,並點擊Return來運行它。但是,使用AppleScript,您可以通過快速雙擊來運行bash腳本。

“do shell script”命令

將bash腳本添加到AppleScript是一個簡單的過程。首先,轉到“應用程序”>“實用程序”>“腳本編輯器”以打開新的AppleScript。然後,為完成的腳本選擇一個位置並點擊newdocument。您將看到一個空白的編輯器窗口。

使用您最喜歡的macOS文本編輯器準備bash腳本,或者在腳本編輯器中正確地執行。準備好後,使用

do shell script

命令。您可以使用以下命令發送命令:

do shell script "Command"

添加分號(;)以發送多個命令,如下所示:

do shell script "Command1; Command 2"

要引用其他地方的現有bash腳本,只需使用:

do shell script "/path/to/your/script.sh"

如果要運行需要管理員權限的命令,可以先在AppleScript中設置它們,如下所示:

do shell script "command" user name "USER" password "PASSWORD" with administrator privileges

點擊播放按鈕來運行AppleScript並檢查語法錯誤。最後,保存AppleScript;在“文件格式”下,選擇“應用程序”。這將允許您雙擊以運行它。

在bash中反轉

順便說一下,如果您想做相反的操作並向bash腳本中添加AppleScript命令呢?好吧,你也能做到!

在bash腳本中,可以添加

osascript

命令,後跟AppleScript,添加有趣的元素,如用戶輸入或警告橫幅。

使用applescript

Applescript droplet icon

假設你有一堆圖片需要調整大小以準備寫博客,或者你想按類型對所有文件進行排序。您可以編寫腳本來完成這些操作,但是傳統的bash腳本要求您在每次操作時都要編寫要操作的每個文件的完整路徑。在處理大量文件時,這可能會變得乏味。

幸運的是,您可以設置一個AppleScript,它只需要將目標文件拖到它上面就可以作為輸入運行它。這些特殊的應用程序被稱為水滴。下面是如何創建一個:

  1. 使用腳本編輯器打開新的AppleScript。
  2. 用打開的文件上的處理程序啟動AppleScript。你可以隨意調用掉的文件。AppleScript將使用它作為分配給您刪除的文件的變量。
  3. 使用do shell腳本或常規AppleScript語法完成腳本的其餘部分。確保關閉腳本時end open關閉處理程序。
  4. 如上所述,將AppleScript保存為應用程序。

現在您可以直接將文件拖放到腳本上。

applescript腳本示例

Applescript editor window

下面的例子展示了這兩個實用的特性。

更改任何拖放文件的權限

假設你想把一個文件、腳本或文檔交給一個朋友,並想確保他們不會亂來。使用此腳本,您可以輕鬆地取消任何文件的寫入權限,為其提供只讀版本。

請記住,當您將一個文件放到一個水滴上時,它的路徑名由AppleScript以HFS格式(層次文件系統)讀取。這將使用冒號,並且不會轉義空格,因此桌面上的文件如下所示:

Macintosh HD:Users:jdoe:Desktop:myfile

Bash使用另一種稱為POSIX的路徑標準,因此Bash中的同一個文件作為

Macintosh\ HD/Users/jdoe/Desktop/myfile

. 下面的腳本將文件名轉換為相應的路徑標準,然後再更改對其的權限:

on open dropped_file set bash_path_file to the POSIX path of dropped_file do shell script "chmod -R -w " & quoted form of bash_path_fileend open

使用automator實現更高的mac自動化

既然你已經有了自動化之癢,那就跳進Mac上的Automator來解決它吧。Automator和AppleScript有很多相似之處。如果您剛剛開始使用腳本和自動化,您可能會發現Automator是一個更簡單的網關。Automator不使用可讀的編程語言,而是使用直觀的拖放氣泡和易於學習的界面來簡化您的日常任務。

  • 發表於 2021-03-21 09:39
  • 閱讀 ( 53 )
  • 分類:蘋果

你可能感興趣的文章

c(c)和目標c(objective c)的區別

...機執行特定任務建立有意義的指令集非常有用。兩種廣泛使用的程式語言是C和Objective C。Objective C是基於C語言的。因此,C程式可以作為目標C進行編譯和執行。目標C由基本C以及面向物件的概念、訊息傳遞、協議等組成。C與目標C...

  • 發佈於 2020-10-16 06:52
  • 閲讀 ( 58 )

編譯時間(compile time)和執行時(runtime)的區別

...式設計師可以用程式語言向計算機發出指令。程式設計師使用的大多數程式語言都是高階程式語言。它們的語法與英語相似。這些語言很容易被人類閱讀和理解。原始碼是使用高階語言編寫的程式。原始碼可以包含一組行或多行...

  • 發佈於 2020-10-19 10:25
  • 閲讀 ( 60 )

原始碼(source code)和位元組碼(bytecode)的區別

主要區別-原始碼與位元組碼 計算機是一種能根據使用者提供的指令執行任務的機器。計算機程式可以向計算機發出指令。它是用一套特定的程式語言編寫的。程式語言有很多種。大多數程式語言都是高階程式語言。用高階語...

  • 發佈於 2020-10-19 15:49
  • 閲讀 ( 60 )

9個預設mac應用程式,您可以用功能強大的替代品替代

... 您有不同的語法高亮顯示選項,包括Markdown、JavaScript、AppleScript和Bash。它甚至可以連線到Applescript編輯器。有一個選單項可以開啟字典來構建指令碼。 ...

  • 發佈於 2021-03-13 00:56
  • 閲讀 ( 53 )

什麼是shell指令碼,為什麼要使用它

... 如何執行shell指令碼?很簡單。只需將指令碼路徑作為引數傳遞給shell: ...

  • 發佈於 2021-03-13 04:53
  • 閲讀 ( 54 )

為什麼java虛擬機器可以幫助程式碼更好地執行

... 以下是BZLib壓縮庫中的一個小程式碼段,它演示瞭如何使用ifdef隔離平臺特性: ...

  • 發佈於 2021-03-13 07:13
  • 閲讀 ( 50 )

一個尺寸不適合所有人:為什麼軟體不能普遍相容

...作業系統工作需要一點(只是一點,我保證)關於軟體是如何**的知識。 ...

  • 發佈於 2021-03-13 08:34
  • 閲讀 ( 52 )

關閉Windows10膝上型電腦螢幕的7種方法

...一點有多種方法——實際上有七種方法。繼續閱讀,學習如何關閉膝上型電腦螢幕。 ...

  • 發佈於 2021-03-14 02:08
  • 閲讀 ( 72 )

VisualStudio程式碼是mac的完美文字和指令碼編輯器

...言。另一個支援降價。甚至還有一個外掛可以編寫和執行Applescript。 ...

  • 發佈於 2021-03-14 07:11
  • 閲讀 ( 56 )

如何使用ocr將手寫影象轉換為文字

您是否需要將手寫筆記數字化以編輯或索引它們?或者你想從手寫引文的圖片中複製文字?你需要的是一種光學字元識別(OCR)工具。 ...

  • 發佈於 2021-03-18 01:59
  • 閲讀 ( 46 )