แสดงผลลัพธ์ของคำสั่ง Automator-Terminal


9

TL; DRหากฉันสร้าง. แอปผ่าน Automator ฉันจะแสดงผลลัพธ์ของเชลล์สคริปต์ในหน้าต่างโต้ตอบหรือเทอร์มินัลได้อย่างไร

ฉันใช้ Automator เพื่อรันเชลล์สคริปต์

adb install /Directory/$1.apk

และถ้าฉันเรียกใช้ผ่าน Automator ฉันสามารถเห็นผลลัพธ์ (ติดตั้งสำเร็จหรือไม่สามารถค้นหา filname.apk หรือเทอร์มินัลอะไรก็ตามที่จะบอกฉัน) หากฉันบันทึกเป็นแอพและดับเบิลคลิกเพื่อเรียกใช้ฉันจะไม่เห็นผลลัพธ์เหล่านี้

ฉันจะทำอย่างไรเพื่อแสดงหน้าต่างข้อความหรือหน้าต่างเทอร์มินัลที่จะแสดงผลลัพธ์ของสคริปต์ที่ฉันเรียกใช้


ฉันใช้คำถามนี้เพื่อสร้างสิ่งนี้: github.com/robertocaldas/AdbInstallService
Roberto

คำตอบ:


2

มีสองวิธีที่คุณสามารถทำได้:

  • เพิ่มขอยืนยันการดำเนินการหลังจากที่เรียกใช้ Shell Scriptหนึ่งและการใช้$1ในข้อความฟิลด์
  • เพิ่มอีกเรียก Shell Scriptosascript -e 'tell app "System Events" to display dialog "$1"'และการดำเนินงาน คุณจะต้องเลือกเป็นอาร์กิวเมนต์ในเมนูแบบเลื่อนลงของอินพุต

8
มันจะแสดง$1ด้วยวิธีใดวิธีหนึ่งเหล่านั้น
ลิ้น

@Jakar ผมได้ทดสอบก็มีคนแรกที่เรียก Shell Scriptการดำเนินการทำecho somethingและการทำงานที่แน่นอน บางทีคุณสคริปต์ไม่ได้ส่งคืนบางสิ่งบางอย่าง?
Thecafremo

ตกลง. ฉันคิดว่าอาจมีบางอย่างเกี่ยวข้องกับadb(ส่วนหนึ่งของ SDK สำหรับนักพัฒนา Android) เนื่องจากมีเอาต์พุตใน Terminal หลังจากที่ฉันเรียกใช้คำสั่งนั้น แต่ไม่ผ่านสคริปต์อัตโนมัติ
รีด

การปรับเปลี่ยนเล็กน้อยเพื่อจัดการกับการแก้ไขสตริง osascript -e 'บอกแอพ "เหตุการณ์ของระบบ" เพื่อแสดงกล่องโต้ตอบ "'" $ 1 "'"'
bingles

21

หากคุณมีเอาต์พุตไม่กี่บรรทัดคุณต้องการกำหนดให้ตัวแปรแล้วแสดงไดอะล็อกการยืนยันที่แสดงเอาต์พุต

  1. เพิ่มการกระทำ "ตั้งค่าตัวแปร"
  2. ป้อนตัวแปรใหม่เช่น output
  3. เพิ่มการกระทำ "ถามเพื่อยืนยัน"
  4. ในฟิลด์ข้อความให้ป้อนชื่อตัวแปรที่ประกาศไว้ด้านบน ในขณะที่พิมพ์ชื่อตัวแปร Automator จะแนะนำให้กรอกชื่อตัวแปรให้สมบูรณ์ ยอมรับโดยกดปุ่ม Enter สิ่งนี้จะป้องกันไม่ให้ Automator ตีความชื่อตัวแปรเป็นข้อความธรรมดา

จะมีลักษณะเช่นนี้: Automator พร้อมเอาต์พุตข้อความ

NB: ฉันก็ลอง$1วิธีนี้ แต่ก็ไม่ประสบความสำเร็จ

หากคุณมีบรรทัดเอาต์พุตจำนวนมากคุณควรนำเอาต์พุตทั้งหมดไปยังเอกสาร TextEdit ใหม่ ในการทำเช่นนั้นเพียงเพิ่มแอ็คชัน "New TextEdit Document" หลังจากการกระทำสคริปต์ของคุณ

อาจมีลักษณะเช่นนี้: ข้อความใหม่แก้ไขการกระทำของเอกสาร

คำแนะนำ:ข้อความวินิจฉัยมักจะถูกส่งออกไปยังข้อผิดพลาดมาตรฐาน หากต้องการรวบรวมข้อความที่ส่งถึงข้อผิดพลาดมาตรฐานให้เพิ่มexec 2>&1ที่ด้านบนสุดของสคริปต์ทุบตีของคุณ


1
ว้าวสิ่งที่ฉันต้องการ!
code4j

1
วิธีนี้ใช้ได้ผลสำหรับฉันในขณะที่รุ่นที่ยอมรับไม่ได้
Ilias Karim

นี่เป็นประโยชน์กับฉันจริงๆและอธิบายว่าทำไมฉันจึงไม่สามารถรับค่าของเอาต์พุตได้ ผลงานยอดเยี่ยม
CommentLuv

สามารถแก้ไขเพื่อเปิดเอกสารText Mate ได้หรือไม่
เกร็ก

1

จำเป็นต้องใช้ "Set Value of Variable"

ป้อนคำอธิบายรูปภาพที่นี่


ล่อลวงให้โหวตเพราะนี่เป็นเพียงคำตอบที่ซ้ำกันของ Daniel K ยกเว้นข้อมูลน้อย ...
adfaklsdjf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.