ในปัจจุบันฉันมีสคริปต์ทุบตีง่าย ๆ ซึ่งเรียกosascript -e
หลายครั้ง; ดูเหมือนว่านี้ (เพิ่มบรรทัดใหม่สำหรับการอ่าน):
#!/bin/sh
osascript \
-e 'tell application "Terminal" to activate' \
\
-e 'set allWindows to number of windows' \
-e 'set newTab to true' \
\
-e 'repeat with i from 1 to allWindows' \
-e ' set allTabs to number of tabs of window i' \
-e ' repeat with j from 1 to allTabs' \
-e ' if custom title of tab j of window i contains "Hi" then' \
-e ' set frontmost of window i to true' \
-e ' set selected of tab j of window i to true' \
-e ' set newTab to false' \
-e ' end if' \
-e ' end repeat' \
-e 'end repeat' \
\
-e 'if newTab then' \
-e ' tell application "System Events" to tell process "Terminal" to keystroke "t" using command down' \
-e ' tell application "Terminal"' \
-e ' do script ("tabname $2") in selected tab of the front window' \
-e ' set custom title of selected tab of the front window to "$2"' \
-e ' end tell' \
-e 'end if' \
\
-e 'tell application "Terminal" to do script ("$1") in selected tab of the front window'
แนวคิดเบื้องหลังคือให้ฉันเรียกสิ่งที่ต้องการ~/term.sh pwd Hi
เปิดแท็บเทอร์มินัลใหม่พร้อมชื่อ "สวัสดี" แล้วโทรpwd
เข้าไปข้างใน
222:227: syntax error: Expected “then”, etc. but found identifier. (-2741)
ปัญหาเดียวก็คือว่าข้อผิดพลาดด้วย ฉันถือว่านี่หมายความว่าif
a หายไปthen
แต่ไม่สามารถเห็นได้เลย อีกความคิดหนึ่งที่ฉันมีคือ 222: 227 หมายถึงคอลัมน์ แต่อีกครั้งฉันไม่เห็นว่าคอลัมน์เหล่านั้นของคำสั่งนั้นผิดอย่างไร
มีใครบ้างที่สามารถชี้ให้ฉันไปในทิศทางที่ถูกต้องได้ไหม