Tengo un problema de dos partes.
- Estoy tratando de pasar una variable de AppleScript para ser utilizado como una variable dentro de un shell de bash script. No puedo entender cómo este trabajo. He leído acerca de la concatenación de la variable y el
do shell script
comando con&
dentro de AppleScript. Pero que en realidad no funciona con una larga secuencia de comandos.
Aquí está el corto de AppleScript para seleccionar un archivo y (con suerte) a pasar a lo largo de la 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, a continuación, la secuencia de comandos 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 de la secuencia real, pero creo que la intención es clara. Estoy seguro de cómo pasar de la myFile
variable DE Applescript para el shell.
- El segundo problema es que el
trans
comando (que es un lugar práctico de la línea de comandos traductor) utiliza lagawk
comando que por supuesto se instala junto con eltrans
el programa en sí. Pero cuando se ejecute desde Applescript me sale el mensaje de error:
error "/usr/local/bin/trans: línea 4990: gawk: comando no encontrado" número 127
Sé que AppleScript necesidades de la fullpath en orden para que esto funcione. Pero, ¿cómo puedo proporcionar la ruta de acceso completa para un comando bien integrado dentro de casi 5000 líneas de código? ¿Puedo cambiar el código de la trans
propio programa para proporcionar la ruta de acceso completa a gawk
?
También me doy cuenta de que yo podía hacer todo desde dentro de la cáscara y que mucho de esto se le añade complejidad donde no es necesario. Pero creo que aún así vale la pena saber cómo hacerlo.
Gracias por la lectura.