Ho un problema in due parti.
- Sto provando a passare una variabile da AppleScript per essere usata come variabile all'interno di uno script di shell bash. Non riesco a capire come funziona. Ho letto di concatenare la variabile e il comando
do shell script
con&
all'interno di AppleScript. Ma questo non funziona con uno script più lungo.
Ecco il breve AppleScript per selezionare un file e (si spera) passarlo alla shell come variabile.
tell application "Finder"
activate
choose file
set myFile to result as text
end tell
do shell script "/path/to/script.sh"
E poi lo script di shell stesso:
#!/bin/bash
while read lines
do
echo ${lines##*:}
grep "string"
done <$myFile | awk '!x[$0]++' |\
trans -b :en # this is where the second problem occurs
Questa è una versione abbreviata della sceneggiatura attuale, ma penso che l'intento sia chiaro. Non sono sicuro di come passare la variabile myFile
FROM Applescript alla shell.
- Il secondo problema è che il comando
trans
( che è un traduttore di riga di comando piuttosto utile ) usa il comandogawk
che, naturalmente, è installato insieme al programmatrans
stesso. Ma quando viene eseguito da Applescript ottengo il messaggio di errore:
error "/usr/local/bin/trans: line 4990: gawk: command not found" number 127
So che AppleScript ha bisogno del percorso completo perché funzioni. Ma come posso fornire il percorso completo per un comando incorporato in profondità in quasi 5000 righe di codice? Devo modificare il codice del programma trans
stesso per fornire il percorso completo a gawk
?
Inoltre mi rendo conto che potrei fare tutto da dentro la shell e che molto di questo aggiunge complessità in cui nessuno è necessario. Ma penso che valga ancora la pena sapere come farlo.
Grazie per la lettura.