Làm thế nào để chạy tên ứng dụng open -n từ dòng lệnh?


0

Tôi đã nhận được hai dòng mà tôi muốn chạy từ tệp tập lệnh (trên Yosemite 10.10.3). Nó hoạt động khi chạy từ thiết bị đầu cuối

CX_LICENSE=LS
open -n /Applications/Inspire\ Designer\ 10.0\ GA/Inspire\ Designer.app/

Tôi đã lưu hai dòng này trong một tệp và đặt tên là nó chạy ID. -rwxr-xr-x @ 1 Nhân viên quản trị 89 20 tháng 7 17:34 runID

Nếu tôi nhấp đúp vào runID thì tôi nhận được cửa sổ mới với

Last login: Mon Jul 20 17:22:27 on ttys002
dsa-mac1:~ Administrator$ /Users/Administrator/Desktop/runID ; exit;
: command not foundr/Desktop/runID: line 1: 
/Users/Administrator/Desktop/runID: line 1: -n: command not found
logout

[Process completed]

Bất kỳ ý tưởng làm thế nào để làm cho runID làm việc?


Vâng no chinh xac. Sao chép từ thiết bị đầu cuối.
Radek

Tôi đã sử dụng trình soạn thảo văn bản tiêu chuẩn. Không thể nhớ tên của nó ngay bây giờ.
Radek

Tôi không thể làm điều đó ngay bây giờ. Tôi đã làm phiên từ xa và cố gắng giải quyết một vấn đề. Tôi sẽ nhờ ai đó phát hành và xem. Cảm ơn sự giúp đỡ của bạn.
Radek

Thông báo lỗi dường như không khớp với mẫu mã của bạn (-n nằm trên dòng 2), nhưng điều này có thể là kết quả của việc có dòng cuối Windows. Bạn có thể sử dụng nanonhư một biên tập viên, viết kịch bản ở đó và thử lại không?
nohillside

Ngoài ra, để sử dụng một ứng dụng cụ thể, bạn sẽ cần -atùy chọn như thế nào open -n -a "Inspire Designer.app".
nohillside

Câu trả lời:


2

Bạn đang thiếu dòng ban đầu của tệp tập lệnh của bạn - "shebang".

Đặt nội dung sau vào tệp tập lệnh của bạn:

#! / thùng / sh
CX_LICENSE = LS
mở -n / Ứng dụng / Inspire \ Designer \ 10.0 \ GA / Inspire \ Designer.app/

Điều đó sẽ hoạt động - tệp bạn có trước đây không có đủ thông tin để cho hệ điều hành biết cách chạy tập lệnh của bạn. Bạn muốn chạy một tập hợp các lệnh shell, vì vậy bạn cần nói với hệ điều hành đó là tập lệnh shell, được thực hiện bằng cách bao gồm #!/bin/shdòng đầu tiên của tập lệnh.

Xem câu trả lời này trên Stack Overflow để biết thêm thông tin.

Cập nhật

Chỉ cần xác nhận, tôi vừa thử kịch bản này và nó hoạt động tốt:

#!/bin/sh
open -n /Custom\ Applications/MacVim.app

Như được chỉ ra chính xác bởi @ fd0, bạn nên đặt tên cho tập lệnh <script>.toolhoặc <script>.commandđể tập lệnh được thực thi từ Finder (trong đó <script>có một tên có ý nghĩa cho tập lệnh).


Tôi nghĩ tôi đã thử nó rồi. Hãy để tôi xác nhận vào ngày mai.
Radek

Đúng, tôi đã thử trước khi đăng câu hỏi này. Nhận được "dsa-mac1: Quản trị viên máy tính để bàn $ ./runID ./runID: dòng 2: -n: không tìm thấy lệnh"
Radek

Tôi vừa thử nghiệm bằng cách sử dụng một tập lệnh tương tự và nó hoạt động rất hấp dẫn - xem câu trả lời được cập nhật của tôi.
mjturner

1
@mjturner - Các tập lệnh Shell không có nghĩa là có thể nhấp đúp trừ khi được thêm vào bằng .commandhoặc .tool. Trong cả hai trường hợp, các tệp văn bản không cần một shebang. Kịch bản chạy trong một thể hiện của trình bao.
fd0

@ fd0 Có, vì vậy tôi đã nhận ra (và cảm ơn vì .command/ .toolmẹo). Ngoài ra, tôi đã bỏ qua việc kiểm tra bằng Finder :(
mjturner
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.