Actualmente, tengo un bash muy simple script que llama a osascript -e
un montón de veces; tiene el siguiente aspecto (se han añadido nuevas líneas 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 permitirme llamar a algo como ~/term.sh pwd Hi
para abrir una nueva pestaña del terminal con el título "Hola" y llamar a pwd
en su interior.
El único problema es que da error con 222:227: syntax error: Expected “then”, etc. but found identifier. (-2741)
. Supongo que esto significa un if
le falta un then
pero no puedo ver ninguno de ellos. El otro pensamiento que tuve es que 222:227 indica columnas, pero de nuevo no veo cómo esas columnas del comando están mal.
¿Hay alguien que pueda indicarme la dirección correcta aquí, por favor?