2 votes

Comment recharger le script Bash dans ~/bin/script_name après l'avoir modifié?

Contexte

Après avoir exporté un script vers ~/bin/nom_script et l'avoir exécuté avec succès à partir de l'interface de ligne de commande en un endroit arbitraire avec : nom_script, j'ai mis à jour le contenu du script. Cependant, cette mise à jour n'est pas reflétée dans le comportement.

Ancien contenu :

#!/bin/bash
echo "Ancien monde"

Nouveau contenu :

#!/bin/bash
echo "Bonjour le monde"

J'ai enregistré le fichier, et l'ai rouvert, et il affiche le nouveau contenu.

Sortie attendue :

Bonjour le monde

Sortie réelle :

Ancien monde

Question

Comment puis-je m'assurer que le contenu renouvelé du ~/bin/nom_script est utilisé lorsque je l'appelle à partir d'un emplacement arbitraire en utilisant : nom_script ?

Tentatives

D'abord j'ai essayé de fermer et de rouvrir le terminal. Ensuite j'ai essayé de redémarrer, les deux affichent le même comportement inattendu (pour moi).

Informations supplémentaires

Ubuntu 22.10, et le contenu de $PATH est :

/home/nom/miniconda/envs/snncompare/bin:/home/nom/miniconda/condabin:/home/nom/.local/bin:/home/nom/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

8voto

Artur Meinild Points 5704

Vous disposez d'une copie du script située à /home/name/.local/bin/script_name que vous n'avez pas mise à jour. Cette variation du script est trouvée en premier dans le chemin.

Par conséquent, lorsque vous l'exécutez à partir d'un emplacement arbitraire, vous obtenez l'ancien script.

Supprimez le script de cet emplacement:

rm /home/name/.local/bin/script_name

Et n'avoir votre script que dans un seul emplacement. Sinon, vous allez vous créer des problèmes.

1voto

a.t. Points 165

Une solution a été trouvée en copiant également le fichier dans le dossier ~/.local/bin. Comme je l'ai appris du commentaire de steeldriver.

SistemesEz.com

SystemesEZ est une communauté de sysadmins 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