Cách biến tập lệnh Bash thành ứng dụng có thể nhấp với AppleScript

Giả sử bạn là người rất am hiểu về tập lệnh bash, thích tự động hóa các tác vụ cho bạn bè và những thành viên trong gia đình không hiểu biết nhiều về công nghệ. Mặc dù bạn đã đưa cho họ một tập lệnh giúp khắc phục hoàn toàn vấn đề, nhưng họ vẫn có thể lo lắng về việc sử dụng Terminal một mình. Trong trường hợp này, bạn cũng có thể giúp họ theo cách thủ công.

May mắn thay, AppleScript là một ngôn ngữ lập trình thân thiện với người dùng, dễ dàng biến những tập lệnh thành một thứ gì đó có thể chia sẻ và thân thiện với GUI.

Bắt đầu với AppleScript!

AppleScript là ngôn ngữ lập trình lâu đời có từ phiên bản Mac OS 7. AppleScript được thiết kế như một ngôn ngữ dễ đọc và dễ sử dụng, theo tiêu chuẩn của người dùng trong những năm 1980. Mục đích chính của AppleScript là tương tác với Finder để tự động hóa tiến trình công việc.

Bạn có thể sử dụng AppleScript để thực hiện một quy trình công việc phức tạp, chẳng hạn như tập lệnh bash hoặc sửa đổi file ưu tiên và đơn giản hóa nó thành một nút có thể nhấp.

Công cụ Script Editor trong thư mục Utilities là trình soạn thảo văn bản AppleScript và IDE, giúp bạn viết một AppleScript chức năng. Thanh menu Help là một nguồn tài nguyên vô giá. Hãy sử dụng thanh menu này để xem thông tin hướng dẫn về ngôn ngữ AppleScript.

Bạn cũng có thể truy cập Window > Library để nhận danh sách mọi lệnh AppleScript có thể sử dụng.

Làm cho tập lệnh Bash có thể nhấp bằng AppleScript

Bash có thể giúp bạn tương tác với máy Mac, tạo tập lệnh cho gần như mọi thứ bạn muốn làm với máy tính của mình.

Thông thường, nếu bạn muốn chạy tập lệnh bash, bạn phải đảm bảo rằng nó có quyền thực thi. Sau đó, bạn phải mở Terminal, điều hướng đến đường dẫn tập lệnh và nhấn Return để chạy nó. Tuy nhiên, với AppleScript, bạn có thể chạy các tập lệnh bash bằng cách nhấp đúp nhanh.

Lệnh do shell script

Thêm tập lệnh bash vào AppleScript là một quá trình đơn giản. Đầu tiên, đi đến Applications > Utilities > Script Editor để mở AppleScript mới. Sau đó, chọn một vị trí cho tập lệnh sau khi hoàn thành và nhấn New Document. Bạn sẽ thấy một cửa sổ soạn thảo trống.

Chuẩn bị tập lệnh bash bằng trình soạn thảo văn bản macOS yêu thích hoặc thực hiện ngay trong Script Editor. Khi đã sẵn sàng, hãy thêm nó bằng lệnh do shell script. Bạn có thể gửi lệnh bằng cách sử dụng:

do shell script "Command"

Thêm một dấu chấm phẩy (;) để gửi nhiều lệnh, như sau:

do shell script "Command1; Command 2"

Để tham khảo tập lệnh bash hiện có ở một nơi khác, chỉ cần sử dụng:

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

Nếu muốn chạy một lệnh yêu cầu quyền admin, bạn có thể đặt chúng trong AppleScript trước, như sau:

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

Nhấn nút Play để chạy qua AppleScript và kiểm tra xem có lỗi cú pháp không. Cuối cùng, lưu AppleScript. Trong File Format, chọn Application. Tùy chọn này sẽ cho phép bạn nhấp đúp để chạy tập lệnh.

Đảo ngược tập lệnh trong Bash

Một lưu ý nhỏ là nếu bạn muốn làm ngược lại, tức là thêm các lệnh AppleScript vào tập lệnh bash thì sao? Tin vui là bạn cũng có thể làm điều đó!

Trong tập lệnh bash, bạn có thể thêm một lệnh osascript, theo sau là AppleScript, để thêm các yếu tố thú vị như đầu vào người dùng hoặc biểu ngữ cảnh báo.

Sử dụng AppleScript Droplet

Sử dụng AppleScript Droplet

Giả sử bạn có nhiều hình ảnh cần thay đổi kích thước trên Mac để đăng lên blog hoặc muốn sắp xếp tất cả các file theo loại. Bạn có thể viết các tập lệnh để thực hiện những hành động này. Nhưng một tập lệnh bash truyền thống yêu cầu bạn viết toàn bộ đường dẫn của mỗi file muốn thao tác, khi cần thực thi tập lệnh đó. Làm điều đó thật tẻ nhạt, đặc biệt khi bạn có đến hàng tá file dung lượng lớn.

May mắn thay, bạn có thể thiết lập để AppleScript chỉ yêu cầu kéo file mục tiêu vào đó, rồi chạy như đầu vào. Những AppleScript đặc biệt này được gọi là Droplet. Sau đây là cách tạo một Droplet:

1. Mở một AppleScript mới với Script Editor.

2. Bắt đầu AppleScript với on open dropped_file. Bạn có thể gọi drop_file bằng bất cứ tên gì bạn muốn. AppleScript sẽ sử dụng nó như một biến được gán cho file bạn đã thả vào.

3. Hoàn thành phần còn lại của tập lệnh, sử dụng do shell script hoặc cú pháp AppleScript thông thường. Hãy chắc chắn rằng bạn đóng tập lệnh với end open.

4. Lưu AppleScript dưới dạng một ứng dụng, như đã giải thích ở trên.

Bây giờ bạn có thể kéo và thả file trực tiếp vào tập lệnh của mình.

Ví dụ về tập lệnh AppleScript

Ví dụ về tập lệnh AppleScript

Ví dụ dưới đây cho thấy cả hai tính năng tiện dụng của AppleScript nêu trên trong tình huống thực tế.

Thay đổi quyền của bất kỳ file kéo và thả nào

Giả sử bạn muốn đưa file, tập lệnh hoặc tài liệu cho một người bạn và muốn chắc chắn rằng họ không làm nó trở nên lộn xộn. Sử dụng tập lệnh này, bạn có thể dễ dàng loại bỏ quyền ghi của bất kỳ file nào, biến file đó thành phiên bản chỉ đọc.

Hãy ghi nhớ rằng khi bạn thả một file lên trên một Droplet, tên đường dẫn được AppleScript đọc theo định dạng HFS (Hierarchical File System). Định dạng này sử dụng dấu hai chấm thay cho khoảng trắng, vì vậy file trên desktop đọc là:

Macintosh HD:Users:jdoe:Desktop:myfile

Bash sử dụng một tiêu chuẩn đường dẫn khác gọi là POSIX, do đó, cùng một file trong bash được đọc là Macintosh\ HD/Users/jdoe/Desktop/myfile. Tập lệnh bên dưới chuyển đổi tên file thành tiêu chuẩn đường dẫn phù hợp trước khi thay đổi quyền trên đó:

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_file
end open

Sử dụng Automator để tự động hóa Mac nhiều hơn

Bây giờ bạn đã nắm được cơ bản thế nào là tự động hóa, hãy tìm hiểu sâu hơn bằng cách vào Automator trên máy Mac. Automator và AppleScript có rất nhiều điểm tương đồng. Nếu bạn chỉ mới bắt đầu làm quen với các tập lệnh và tự động hóa, bạn có thể thấy Automator là một công cụ dễ dàng hơn. Thay vì ngôn ngữ lập trình dễ đọc, Automator sử dụng các bong bóng kéo thả trực quan và giao diện dễ học để đơn giản hóa các tác vụ thường dùng.

Chúc bạn thực hiện thành công!

Thứ Ba, 23/04/2019 12:36
52 👨 1.205
0 Bình luận
Sắp xếp theo