web-dev-qa-db-fra.com

Impossible d'exécuter les scripts Shell à partir de `~ / bin`

J'apprends à écrire un script shell à partir de ce tutoriel sur linuxcommand.org . Ça dit -

La plupart des distributions Linux modernes encouragent une pratique dans laquelle chaque utilisateur dispose d’un répertoire spécifique pour les programmes qu’il utilise personnellement. Ce répertoire s'appelle bin et est un sous-répertoire de votre répertoire personnel.

J'ai essayé ça. Mais j'obtiens l'erreur suivante-

foobar: command not found

Plus loin dans cette page, il est également dit que-

Sur certaines distributions, notamment Ubuntu, vous devrez ouvrir une nouvelle session de terminal avant que votre répertoire bin nouvellement créé ne soit reconnu.

Cela signifie que Ubuntu prend en charge cette fonctionnalité. Mais pourquoi ça ne marche pas?

Je suis sur Ubuntu 12.04 LTS.

5
ShuklaSannidhya

Lorsque vous vous connectez ou démarrez un nouveau shell, certains scripts sont analysés. Les scripts qui dépendent exactement du shell que vous utilisez (par exemple, ksh, csh, tsch, bash, dash, pinosh, ...) et s’il s’agit ou non d’un shell de connexion.

Si vous utilisez les paramètres par défaut d’Ubuntu, il est probable qu’il contiendra les éléments suivants:

 # set PATH afin qu'il inclue le bac privé de l'utilisateur s'il existe 
 if [-d "$ HOME/bin"]; then 
 PATH = "$ HOME/bin: $ PATH" 
 fi 

En d'autres termes, si ~/bin/existe déjà, ajoutez-le au chemin de recherche.
S'il n'existe pas, il n'y a aucune raison d'essayer de rechercher ce lieu à chaque fois. Alors ne l'ajoutez pas.

Cela signifie que vous devrez créer ~/bin /, puis démarrer un nouveau shell ou le créer et y ajouter manuellement un chemin.


En ce qui concerne "la plupart des distributions Linux encouragent". Cela avait déjà été encouragé en 1991 lorsque j'ai créé mon premier compte Unix sur un serveur exécutant ESIX. Toujours vrai aujourd'hui cependant.

4
Hennes