Cela me rend fou. J'essaie de lire un fichier dans bash, supprimer les doublons, trier, puis afficher une fenêtre "choix de la liste" via applescript.Sortie de Bash sous forme de liste de problèmes Applescript
Mon fichier $ DATALOG est formaté comme ceci:
field1 field2
field1 field3
field1 field4
etc ...
AppleScript = awk '{print $2}' $DATALOG | awk ' !x[$0]++' | sort -u | tr "_" " "| sed 's/^/\"/' | sed 's/$/\"/' | tr "\n" "," | sed 's/.$//'
Maintenant, cette ligne fonctionne très bien. dans $ Applescript, je reçois une sortie comme ceci:
"field 2","field 3", "field 4"
Ce qui est exactement ce que je veux.
Maintenant, je prends cette sortie, et j'ajoute le backslash avant les guillemets, et les parties de l'applescript.
Applescript=`echo "tell application \"System Events\" to return (choose from list {$Applescript})"| sed 's/\"/\\\"/g'`
Et cela me fait exactement ce que je veux:
tell application \"System Events\" to return (choose from list {\"field 2\",\"field 3\",\"field 4\"})
Maintenant, j'essaie la commande osascript:
osascript -e $Applescript
Et je reçois une erreur:
4:4: syntax error: Expected expression but found end of script. (-2741)
Alors, j'ajouter des guillemets:
osascript -e "$Applescript"
Et je reçois une erreur:
17:18: syntax error: Expected expression, property or key form, etc. but found unknown token. (-2741)
Je ne peux pas dire ce qui se passe ici l'enfer, donc je décide de copier un écho de l'aéroport $ et essayez cela en tant que variable.
Airport=
tell application \"System Events\" to return (choose from list {\"field 2\",\"field 3\",\"field 4\"})
ET QUI FONCTIONNE SANS AUCUNE MODIFICATION.
Alors ....
J'ai besoin de savoir comment faire cela sans avoir à mettre en permanence mes variables.
J'ai oublié de mentionner que l'écriture d'un fichier temporaire fonctionne correctement. Je ne veux pas vraiment écrire des fichiers temporaires si ... D'une autre manière? –