Mac tương đương với lệnh khởi động Windows của Windows là gì?


2

Tôi đang tạo một tập lệnh chạy một số tập lệnh khác.

Tôi cần tất cả chúng khởi động trong quá trình riêng của chúng (cửa sổ đọc) để tôi có thể xem lại đầu ra của mỗi cái, nhưng tôi cũng cần chúng chạy song song, vì vậy chúng không thể chặn nhau.

Ngoài ra, tôi cần thay đổi thư mục làm việc hiện tại cho mỗi quy trình, do đó, làm những việc như sau không hiệu quả:

osascript -e 'tell app "Terminal" to do script "someScript.sh"'

Bạn có thể làm điều này trong một góa phụ và nhiều quy trình nếu chỉ mục con chỉ sử dụng nổi bật cho đầu ra của chúng - tập lệnh gọi có thể chuyển hướng đầu ra sang một tệp khác cho mỗi tập lệnh
Mark

Câu trả lời:


5
osascript -e "tell application \"Terminal\" to do script \"cd $(read); ~/path/to/someScript.sh\""

nên làm việc. Bạn có thể thay thế $ (đọc) bằng một biến.


6

FYI, nói chung, tương đương với Windows startopen ( Đàn ông ). Theo cách sử dụng đơn giản nhất, chúng là mỗi dòng lệnh tương đương với cách nhấp đúp vào thứ gì đó trong vỏ đồ họa. open tuy nhiên, có thể không liên quan đến các phương tiện hiệu quả nhất để làm những gì bạn đang cố gắng làm trong trường hợp này.


Tôi cố gắng sử dụng open để chạy tập lệnh shell thay vì khiến nó mở trong trình soạn thảo văn bản. Có lẽ bạn có thể cung cấp một ví dụ dòng lệnh cho điều này?
threed

1
Bạn thường sẽ không open một tập lệnh để chạy nó, bởi vì 1) nếu bạn đã ở trong một thiết bị đầu cuối, bạn chỉ có thể thực thi nó (ví dụ: cd <dir_containing_script>; chmod +x <script_filename>; <script_filename>; -lưu ý rằng chmod bước chỉ phải được thực hiện một lần cho mỗi tập lệnh) và 2) như bạn đã phát hiện ra, theo mặc định, nhấp đúp vào tập lệnh shell trong Finder không thực thi nó, nó sẽ mở nó để chỉnh sửa. Tuy nhiên bạn có thể sử dụng open để gửi đầu ra của tập lệnh vào ứng dụng GUI. Ví dụ: gửi thiết bị xuất chuẩn của tập lệnh vào tài liệu mới trong trình chỉnh sửa văn bản mặc định của bạn với <script_filename> | open -f.
Terry N

2
Lưu ý rằng bạn đã phải đánh dấu tập lệnh là có thể thực thi được với chmod +x cho ví dụ cuối cùng để làm việc.
Terry N

1
Thêm vào câu trả lời của @ TerryN, open lệnh có các tùy chọn bổ sung cho phép bạn chỉ định rõ ràng ứng dụng nào mở. RTMP.
Matt

Tôi nên làm rõ rằng khi tôi nói ở trên rằng bạn có thể sử dụng open để "gửi đầu ra của tập lệnh vào ứng dụng GUI", tôi đã nói hơi lỏng lẻo. Tôi không có ý ám chỉ rằng nó làm như vậy bằng cách chuyển sang stdin của .app. Như được mô tả trên trang man (trong phần ví dụ), open -f hoạt động bằng cách ghi vào tệp tạm thời và mở tệp đó bằng ứng dụng đích. Thật không may, hành vi đó dường như chỉ được cung cấp cho TextEdit và trình soạn thảo văn bản mặc định.
Terry N
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.