J'ai le script suivant dans le répertoire bin de mon utilisateur; supposons que le nom de fichier est 'myScript':
#!/bin/bash
python3 /myPath/myProgram.py "$@"
À partir de la ligne de commande, si je tape myScript
, il lance mon myProgram.py. Si je tape Sudo myScript
, mais cela me donne cette erreur: Sudo: myProgram: command not found
.
Pourquoi ça ne marche pas? Comment puis-je le faire fonctionner?
Merci!
Vous devrez probablement exécuter le script comme:
Sudo /path/to/myScript
Sudo ./myScript
(si le script est dans le répertoire courant)La raison pour laquelle vous obtenez command not found
si le script ne se trouve pas dans le répertoire PATH de l'utilisateur actuel. Cependant, l'utilisation de Sudo
l'exécute en tant qu'utilisateur root différent (comparez echo $PATH
et Sudo -i
puis echo $PATH
à voir). Donc, vous voulez l'ajouter au CHEMIN de l'utilisateur root:
/usr/local/bin
, /usr/bin/
ou un autre direcotry déjà dans le PATH de la racine