3 votes

Chemin pour bash dans Android termux

Les chemins réguliers pour bash ne fonctionnent pas dans l'application termux. J'ai essayé : /usr/bin/bash et /bin/bash La commande 'whereis' donne également le résultat suivant : $ whereis bash bash : /data/data/com.termux/files/usr/bin/bash Mais ce chemin n'est pas non plus correct. Je dois donc exécuter chaque script bash précédé du mot 'bash'. Et je ne peux pas exécuter les scripts bash sans ce mot.

3voto

Guillermo Gomez Points 423

En septembre 2017, le mainteneur de Termux a publié un paquetage. termux-exec qui se termine par execve(2) de sorte que les fichiers qui ont une ligne shebang comme #!/bin/sh o #!/usr/bin/env fonctionnera correctement dans Termux. Il suffit d'exécuter

pkg install termux-exec

et redémarrez Termux (ou ouvrez une nouvelle session). Vous pourrez alors exécuter #!/bin/sh scripts.

La solution précédente était la suivante :

Termux fournit un utilitaire pratique

termux-fix-shebang

Dont la description se lit comme suit :

Réécrit les shebangs dans les fichiers spécifiés pour fonctionner sous Termux, ce qui est fait en réécrivant #!*/bin/binary a #!$PREFIX/bin/binary .

Il suffit de l'appliquer aux scripts que vous souhaitez exécuter. Il fait ce que son nom suggère : corriger la ligne shebang #!/xxx de vos fichiers de script. Il peut également fixer d'autres scripts comme Perl ou Python.

Notez également que par défaut, votre répertoire de travail n'est pas dans $PATH Vous ne pouvez donc pas taper directement myscript.sh mais au lieu de cela

./myscript.sh
^~

... ou spécifier explicitement un interpréteur de commandes (dans ce cas, vous n'avez pas besoin du préfixe de répertoire) :

bash myscript.sh
^~~~

3voto

Andy Brudtkuhl Points 1714

Si myscript.sh n'est pas dans votre $PATH vous devez l'exécuter par son chemin, et non par son nom de base. En supposant que vous êtes dans le même répertoire que le script, exécutez

./myscript.sh

Notez le premier ./

3voto

Brian Mains Points 31772

Installer termux-exec . C'est un nouvel utilitaire qui devrait résoudre votre problème de $PATH. Termux-exec vous permet d'exécuter des scripts avec des shebangs pour les structures de fichiers Unix traditionnelles. Voir https://wiki.termux.com/wiki/Termux-exec pour plus d'informations.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X