En septiembre de 2017, el mantenedor de Termux lanzó un paquete termux-exec
, que envuelve execve(2)
para que los archivos que tienen una línea shebang como #!/bin/sh
o #!/usr/bin/env
se ejecuten correctamente en Termux. Simplemente ejecuta
pkg install termux-exec
y reinicia Termux (o abre una nueva sesión). Ahora podrás ejecutar scripts con #!/bin/sh
.
La solución anterior era la siguiente:
Termux proporciona una utilidad útil
termux-fix-shebang
Cuya descripción dice:
Reescribe las shebangs en los archivos especificados para ejecutar en Termux, lo cual se hace reescribiendo #!*/bin/binary
a #!$PREFIX/bin/binary
.
Aplica esto a los scripts que desees ejecutar. Hace lo que su nombre sugiere: arreglar la línea shebang #!/xxx
de tus archivos de script. También puede arreglar otros scripts como Perl o Python.
También ten en cuenta que por defecto tu directorio de trabajo no está en $PATH
, por lo que no puedes escribir directamente myscript.sh
, sino que en su lugar
./myscript.sh
^~
... o especificar explícitamente un intérprete de shell (en cuyo caso no necesitas el prefijo del directorio):
bash myscript.sh
^~~~
0 votos
/data/data/com.termux/files/usr/bin/bash
es la única ruta correcta.0 votos
¿Qué estás tratando de lograr?
0 votos
Como en Linux regular, quiero pasar: /bin/bash o /usr/bin/bash para ejecutar scripts. Pero no quiero escribir 'bash' antes de cada nombre de script.
0 votos
Al igual que @DanHulme, no entiendo dónde está el problema. Con
#!/data/data/com.termux/files/usr/bin/bash
como primera línea del script, entonces es posible ejecutar el script simplemente con/path/to/the/script.sh
.0 votos
$ ls myscript.sh $ cat my* #!/data/data/com.termux/files/usr/bin/bash read -p ' ingrese qué desea imprimir ' inputs echo "ha ingresado $inputs" $ myscript.sh myscript.sh: comando no encontrado
0 votos
Comando no encontrado...