1 votos

"do shell script" falla con una queja sobre "env" y "No such file or directory" pero la ruta para el comando es correcta

Antecedentes: texdoc es un comando instalado por la distribución de LaTeX MacTeX y which texdoc en el Terminal da "/Library/TeX/texbin/texdoc".

En la Terminal, texdoc --version da:

Texdoc 3.4.1 (2022-03-19) .

Pero en AppleScript, mediante do shell script Esto no funcionó.

do shell script "/Library/TeX/texbin/texdoc --version" da error:

error "env: texlua: No such file or directory" número 127.

No entiendo por qué AppleScript habla de "texlua" no encontrado y "env" (por cierto which texlua da "/Library/TeX/texbin/texlua").

Cómo llamar texdoc con do shell script ?

Editar

De hecho, no sólo no puedo llamar directamente texdoc --version pero una vez resuelto esto mediante append /Library/TeX/texbin: a la ruta, un caso de uso real sigue sin funcionar, por ejemplo do shell script "texdoc url" aunque añada /Library/TeX/texbin: al camino. Applescript se queja de que no encuentra el archivo open comando ( open es llamado por texdoc para mostrar la documentación en pdf. Muy extraño, porque cuando se llama directamente, por ejemplo do shell script "open /usr/local/texlive/2022/texmf-dist/doc/latex/url/url.pdf" Esto funciona.

Así, después de añadir export PATH='/Library/TeX/texbin:$PATH'; el código AppleScript :

do shell script "export PATH='/Library/TeX/texbin:$PATH'; texdoc url"

produce este error:

error "sh: open: comando no encontrado \rtexdoc error: Error al ejecutar: open "/usr/local/texlive/2022/texmf-dist/doc/latex/url/url.pdf"" número 1

Entonces, ¿cuál es el método completo para llamar a un binario como texdoc con AppleScript?

3voto

La primera línea de /Library/TeX/texbin/texdoc

$ head -1 /Library/TeX/texbin/texdoc
#!/usr/bin/env texlua

llama a texlua y se basa en env encontrar el comando dentro de PATH . Como los AppleScripts se ejecutan con la ruta por defecto (que no contiene /Library/TeX/texbin ) esto fallará con el error que ves.

Para resolverlo, utilice

do shell script "PATH=/Library/TeX/texbin:$PATH texdoc --version"

que se asegura de que PATH incluye tu directorio texbin.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X