Hiển thị kết quả của lệnh Automator-Terminal


9

TL; DR Nếu tôi tạo .app qua Automator, làm cách nào tôi có thể hiển thị kết quả của tập lệnh shell trong hộp thoại hoặc cửa sổ đầu cuối?

Tôi đang sử dụng Automator để chạy script shell

adb install /Directory/$1.apk

và nếu tôi chạy nó thông qua Automator, tôi có thể thấy kết quả (cài đặt thành công hoặc không thể tìm thấy filname.apk hoặc bất kỳ thiết bị đầu cuối nào khác sẽ cho tôi biết). Nếu tôi lưu dưới dạng ứng dụng và nhấp đúp để chạy, thì tôi không thể thấy những kết quả này.

Tôi có thể làm gì để hiển thị hộp thoại hoặc cửa sổ đầu cuối sẽ hiển thị kết quả của tập lệnh tôi chạy?


Tôi đã sử dụng câu hỏi này để tạo câu hỏi này: github.com/robertocaldas/AdbInstallService
Roberto

Câu trả lời:


2

Có một số cách bạn có thể làm điều này:

  • Thêm một hành động Yêu cầu xác nhận sau Run Shell Script một và sử dụng $1trong trường thông báo .
  • Thêm một Run Shell Script khác và thực thi osascript -e 'tell app "System Events" to display dialog "$1"'. Bạn sẽ phải chọn làm đối số trên thả xuống đầu vào vượt qua .

8
Nó chỉ hiển thị $1với một trong những phương thức đó.
Sậy

@Jakar Tôi đã thử nó có hành động Run Shell Script đầu tiên đang thực hiện echo somethingvà nó chắc chắn hoạt động. Có lẽ Script của bạn không trả lại một cái gì đó?
Thecafremo

Được chứ. Tôi nghĩ rằng nó có thể có liên quan adb(một phần của SDK nhà phát triển Android), vì có đầu ra trong Terminal sau khi tôi chạy lệnh đó, nhưng không thông qua tập lệnh tự động hóa.
Sậy

Sửa đổi nhẹ để xử lý phép nội suy chuỗi osascript -e 'nói với ứng dụng "Sự kiện hệ thống" để hiển thị hộp thoại "'" $ 1 "'"'
bingles

20

Nếu bạn chỉ có một vài dòng đầu ra , bạn muốn gán nó cho một biến và sau đó hiển thị hộp thoại xác nhận hiển thị đầu ra.

  1. thêm hành động "Đặt giá trị của biến"
  2. nhập một biến mới, vd output
  3. thêm hành động "Yêu cầu xác nhận"
  4. trong trường thông báo, nhập tên biến được khai báo ở trên. Trong khi gõ tên biến, Automator sẽ đề nghị hoàn thành tên biến. Chấp nhận bằng cách nhấn phím Enter. Điều này ngăn Automator diễn giải tên biến dưới dạng tin nhắn văn bản thuần túy.

Điều này sẽ trông như thế này: Máy tự động với đầu ra văn bản

NB: Tôi cũng đã thử $1cách tiếp cận, nhưng không thành công.

Nếu bạn có nhiều dòng đầu ra , bạn nên hướng tất cả đầu ra vào một tài liệu TextEdit mới. Để làm như vậy, chỉ cần thêm Hành động "Tài liệu văn bản mới" sau hành động tập lệnh của bạn.

Điều này có thể trông như thế này: Văn bản mới Chỉnh sửa hành động tài liệu

Gợi ý: thông báo chẩn đoán thường xuất ra lỗi tiêu chuẩn. Để cũng thu thập văn bản gửi đến lỗi tiêu chuẩn, hãy thêm exec 2>&1vào đầu tập lệnh bash của bạn.


1
wow chính xác những gì tôi cần!
code4j

1
giải pháp này hiệu quả với tôi trong khi phiên bản được chấp nhận thì không
Ilias Karim

điều này thực sự hữu ích với tôi và giải thích lý do tại sao tôi không thể nhận được giá trị của đầu ra. công việc tuyệt vời
CommentLuv

Điều này có thể được sửa đổi để mở một tài liệu Text Mate không?
Greg

1

Cần sử dụng "Đặt giá trị của biến"

nhập mô tả hình ảnh ở đây


Bị cám dỗ vì downvote vì đây chỉ là một bản sao câu trả lời của Daniel K, ngoại trừ với ít thông tin hơn ...
adfaklsdjf
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.