Tengo un problema de dos partes.
- Estoy tratando de pasar una variable de AppleScript para usarla como una variable dentro de un script de shell bash. No puedo averiguar cómo funciona este trabajo. He leído sobre la concatenación de la variable y el comando
do shell script
con&
dentro de AppleScript. Pero eso realmente no funciona con un script más largo.
Aquí está el corto AppleScript para seleccionar un archivo y (con suerte) pasarlo al shell como una variable.
tell application "Finder"
activate
choose file
set myFile to result as text
end tell
do shell script "/path/to/script.sh"
Y luego el script de shell en sí:
#!/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
Esta es una versión abreviada del script real, pero creo que la intención es clara. No estoy seguro de cómo pasar la variable myFile
DE Applescript al shell.
- El segundo problema es que el comando
trans
( que es un traductor de línea de comandos bastante práctico ) utiliza el comandogawk
que, por supuesto, se instala junto con el programatrans
. Pero cuando se ejecuta desde Applescript, aparece el mensaje de error:
error "/ usr / local / bin / trans: línea 4990: gawk: comando no encontrado" número 127
Sé que AppleScript necesita la ruta completa para que esto funcione. Pero, ¿cómo proporciono la ruta completa para un comando integrado dentro de casi 5000 líneas de código? ¿Altero el código del programa trans
para proporcionar la ruta completa a gawk
?
También me doy cuenta de que podría hacer todo esto desde dentro del shell y que mucho de esto está agregando complejidad donde no se necesita. Pero creo que todavía vale la pena saber cómo hacerlo.
Gracias por leer.