Las rutas regulares para bash no funcionan en la aplicación termux. Probé: /usr/bin/bash y /bin/bash También el comando 'whereis' da el siguiente resultado: $ whereis bash bash: /data/data/com.termux/files/usr/bin/bash Pero esta ruta también es incorrecto. Entonces, tengo que ejecutar cada script bash con la palabra 'bash' antes. Y no puede ejecutar scripts de bash sin él.
Si myscript.sh
no está en su $PATH
, debe ejecutarlo por su ruta, no por su nombre base. Suponiendo que está en el mismo directorio que el script, ejecute
./myscript.sh
Tenga en cuenta la dirección./
En septiembre de 2017, el mantenedor de Termux lanzó un paquete termux-exec
, que se completa execve(2)
para que los archivos que tienen una línea shebang como #!/bin/sh
o #!/usr/bin/env
se ejecuten correctamente en Termux. Solo corre
pkg install termux-exec
y reinicie Termux (o abra una nueva sesión). Ahora podrá ejecutar #!/bin/sh
scripts.
La solución anterior era la siguiente:
Termux proporciona una utilidad útil
termux-fix-shebang
Cuya descripción dice:
Reescriba shebangs en archivos específicos para ejecutarlos en Termux, lo que se hace reescribiendo
#!*/bin/binary
en#!$PREFIX/bin/binary
.Simplemente aplíquelo a los scripts que desea ejecutar. Hace lo que sugiere su nombre: arreglar la línea shebang
#!/xxx
de sus archivos de script. También puede corregir otros scripts como Perl o Python.
También tenga en cuenta que , de forma predeterminada, su directorio de trabajo no está en$PATH
, por lo que no puede escribir directamente myscript.sh
, sino que en su lugar
./myscript.sh
^~
... o especifique explícitamente un shell de intérprete (en cuyo caso no necesita el prefijo del directorio):
bash myscript.sh
^~~~
./myscript.sh
?termux-fix-shebang
está obsoleto, ya que termux-exec
es una mejor solución? Si es así, vota la respuesta de @ sd-rausty.instalar termux-exec
_ Es una nueva utilidad que debería resolver su problema de $PATH. Termux-exec le permite ejecutar scripts con shebangs para estructuras de archivos Unix tradicionales. Consulte https://wiki.termux.com/wiki/Termux-exec para obtener más información.
Grimorio
/data/data/com.termux/files/usr/bin/bash
es el único camino correcto.dan hulme
Josef Klimuk
Grimorio
#!/data/data/com.termux/files/usr/bin/bash
la primera línea del script, entonces es posible ejecutar el script con solo/path/to/the/script.sh
.Josef Klimuk
Josef Klimuk