Actuellement, j'ai un bash script très simple qui appelle osascript -e
plusieurs fois ; cela ressemble à ceci (les nouvelles lignes ont été ajoutées pour plus de lisibilité) :
#!/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'idée derrière tout cela est de me permettre d'appeler quelque chose comme ~/term.sh pwd Hi
pour ouvrir un nouvel onglet de terminal avec le titre "Salut" et appeler pwd
à l'intérieur.
Le seul problème est qu'il y a une erreur avec 222:227: syntax error: Expected “then”, etc. but found identifier. (-2741)
. Je suppose que cela signifie une if
Il manque un then
mais je n'en vois aucun. L'autre idée que j'ai eue est que 222:227 indique des colonnes, mais là encore je ne vois pas en quoi ces colonnes de la commande sont fausses.
Quelqu'un peut-il m'indiquer la bonne direction à suivre ?