Al momento, ho uno script bash molto semplice che chiama osascript -e
un sacco di volte; sembra come questo (newlines aggiunti per la leggibilità):
#!/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'
L'idea alla base di questo è di lasciarmi chiamare qualcosa come ~/term.sh pwd Hi
per aprire una nuova scheda del terminale con il titolo "Ciao" e chiamare pwd
al suo interno.
L'unico problema è che si sbaglia con 222:227: syntax error: Expected “then”, etc. but found identifier. (-2741)
. Suppongo che questo significhi che a if
manca un then
, ma non è possibile vederne uno. L'altro pensiero che ho avuto è che 222: 227 indica colonne, ma di nuovo non vedo come quelle colonne del comando siano sbagliate.
C'è qualcuno che può indicarmi la direzione giusta qui per favore?