Câu trả lời:
Đầu tiên trong terminal làm cho tập lệnh thực thi bằng cách gõ:
chmod a+x (yourscriptname)
Sau đó, trong Finder, nhấp chuột phải vào tệp của bạn và chọn "Mở bằng" và sau đó "Khác ...".
Ở đây bạn chọn ứng dụng bạn muốn tập tin thực thi, trong trường hợp này nó sẽ là Terminal. Để có thể chọn thiết bị đầu cuối, bạn cần chuyển từ "Ứng dụng được đề xuất" sang "Tất cả ứng dụng". (Có thể tìm thấy ứng dụng Terminal.app trong thư mục Tiện ích)
LƯU Ý rằng trừ khi bạn không muốn liên kết tất cả các tệp với tiện ích mở rộng này để được chạy trong thiết bị đầu cuối, bạn không nên kiểm tra "Luôn mở với".
.command
là theo mặc định thực thi từ Finder, mà không cần phải hướng dẫn Finder làm thế nào để mở nó.
.command
phần mở rộng tập tin.
Bạn đã thử sử dụng .command
phần mở rộng tên tệp?
chmod +x
) nhưng .command
tiện ích mở rộng đã được liên kết với Terminal. Giải pháp tuyệt vời, cảm ơn bạn
Kể từ OSX 10.10 (Yosemite) và vì ít nhất là OS X 10.8 (Mountain Lion) , hành vi như sau khi bạn mở (nhấp đúp) các tập lệnh thực thi từ Finder :
.command
:
Preferences... > Profiles
bạn có thể chọn tự động đóng cửa sổ khi tập lệnh thoát.cd -- "$(dirname "$BASH_SOURCE")"
ngay sau dòng shebangcd -- "$(dirname "$0")"
.chmod +x <script>
trong Terminal; nếu không, bạn sẽ thấy các triệu chứng sau:.command
: Finder hiển thị thông báo lỗi gây hiểu lầm cho thấy sự cố có thể được khắc phục thông qua File > Get Info
, điều này không đúng - sử dụngchmod +x
phương pháp được đề xuất ở trên.#!/bin/bash
): hành vi như thể hậu tố là .sh
- xem bên dưới..sh
, có thể thực thi được hay không:
TextEdit.app
hoặc, nếu được cài đặt, với Xcode.app
..scpt
hoặc .applescript
(ngay cả khi chính chúng được đánh dấu là có thể thực thi được, điều này thường không xảy ra):
[1] Có nghĩa là có thể thực thi : một tập lệnh với (các) bit quyền thực thi được đặt và người dùng gọi - liên quan đến quyền sở hữu đối với tệp - do đó có khả năng được phép thực thi nó.
Nếu bạn sử dụng chmod a+x
để đặt tất cả các bit quyền (thông thường), bất kỳ ai cũng có thể gọi nó (giả sử họ cũng được phép đọc tệp dựa trên (các) bit quyền đọc và quyền sở hữu tệp).
osascript
mà bạn có thể đưa vào trong .command
tệp thay vì làm rối thủ công hồ sơ.
osascript -e '...'
lệnh vào cuối tập lệnh của một người? Lệnh cụ thể là gì và nó có đảm bảo rằng tab bên phải được đóng ngay cả khi tập lệnh không chạy trong tab ngoài cùng không?
osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
... Nó có thể không hoạt động trong mọi kịch bản, mặc dù chuyển hướng tại end thực sự là chìa khóa - osascript có thể được điều chỉnh dễ dàng (ví dụ: cửa sổ có thể cần phải được thay đổi thành tab nếu đó là hành vi mặc định của thiết bị đầu cuối của bạn, v.v.).
.command
tệp script được chạy mặc dù cài đặt cấu hình?
bash
tập lệnh, hãy thêm read -p 'Press Return to close this window.'
vào như câu lệnh cuối cùng.
Ngoài ra, bạn có thể tạo một ứng dụng Mac OS X thông thường từ tập lệnh của mình bằng Platypus
Cách dễ dàng là thay đổi phần mở rộng thành .command
hoặc không có phần mở rộng.
Nhưng điều đó sẽ mở Terminal và bạn sẽ phải đóng nó. Nếu bạn không muốn thấy bất kỳ đầu ra nào, bạn có thể sử dụng Automator để tạo Ứng dụng Mac mà bạn có thể nhấp đúp, thêm vào dock, v.v.
Automator
ứng dụngRun
nút ở góc trên bên phải để kiểm tra nó.File > Save
để tạo Ứng dụng.Không cần sử dụng các ứng dụng của bên thứ ba như Thú mỏ vịt.
Chỉ cần tạo Tập lệnh Apple bằng Trình do shell script "shell commands"
chỉnh sửa tập lệnh và sử dụng lệnh cho các lệnh gọi trực tiếp hoặc tập tin tập lệnh shell thực thi, giữ tập tin tập lệnh có thể chỉnh sửa an toàn ở đâu đó sau đó xuất tập tin đó để tạo tập lệnh Ứng dụng. tập lệnh ứng dụng có thể khởi chạy bằng cách nhấp đúp hoặc chọn trong thư mục thanh.
Bạn cũng có thể đặt mặc định theo phần mở rộng tệp bằng RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
có khả năng bạn có thể đặt .sh để mở trong iTerm / Terminal, v.v. nó sẽ cần quyền thực thi của người dùng, vd
chmod u+x filename.sh