Actualmente, tengo un script bash muy simple que llama a osascript -e
un montón de veces; se ve así (nuevas líneas agregadas para facilitar la lectura):
#!/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'
La idea detrás de esto es dejarme llamar algo como ~/term.sh pwd Hi
para abrir una nueva pestaña de terminal con el título "Hola" y llamar a pwd
dentro de ella.
El único problema es que se produce un error con 222:227: syntax error: Expected “then”, etc. but found identifier. (-2741)
. Supongo que esto significa que a if
le falta un then
, pero no puede ver ninguno de ellos. El otro pensamiento que tuve es que 222: 227 indica columnas, pero una vez más no veo cómo esas columnas del comando son incorrectas.
¿Hay alguien que pueda indicarme la dirección correcta aquí, por favor?