Ajouter le dossier du script bash au chemin?

16

J'ai des scripts bash dans un dossier d'application que j'aimerais utiliser comme s'ils se trouvaient sur mon chemin. S'il s'agissait d'applications simples, j'ajouterais simplement le répertoire à ~ / .bashrc, mais ce sont des scripts.

par exemple:

~/a_dir/another_dir/foo.sh
~/a_dir/another_dir/foo-gui.sh

Existe-t-il un bon moyen de configurer un chemin pour que je puisse les utiliser à partir de n'importe quel répertoire?

par exemple:

totally/different/path$ bash foo.sh
Abe
la source
vous ne pourrez pas le faire avec bash foo.sh, mais avec foo.sh, après avoir donné la permission à exec et les avoir mis dans $ PATH.
elias

Réponses:

21

Oui, vous pouvez ajouter n'importe quel répertoire au chemin système. Une façon de le faire consiste à mettre à jour la définition de PATH (variable environnementale). Vous pouvez le faire dans votre .bashrcen ajoutant les lignes suivantes:

PATH="/your/script/dir:${PATH}"
export PATH

J'aime ajouter mes scripts à $HOME/.local/bin/(qui est un répertoire caché) pour que mon répertoire personnel reste plus propre.

Votre répertoire ne sera pas inséré immédiatement dans la variable PATH, sauf si vous exécutez source .bashrc.

Vous pouvez ajouter plusieurs répertoires au chemin, souvenez-vous-en. Veuillez consulter la documentation BASH si vous ne comprenez pas le code.

La méthode précédente ne fonctionnera que pour votre utilisateur. Si vous devez ajouter un répertoire de scripts pour tous les utilisateurs, faites comme bodhi.zazen et ajoutez vos scripts à /usr/local/bin.

Severo Raz
la source
L'ajouter avant remplace les scripts système - ce qui signifie qu'il pourrait être facile de les remplacer, ce qui n'est pas toujours bon.
Wilf
9

OMI, la meilleure méthode consiste à ajouter les scripts à ~ / bin

mkdir ~/bin

~/bindevrait automatiquement être ajouté à votre chemin. Sinon, ajoutez ceci à~/.bashrc

if [ -d $HOME/bin ]; then
    PATH=$PATH:$HOME/bin
fi

Si vous souhaitez qu'ils soient disponibles pour tous les utilisateurs, ajoutez-les à /usr/local/bin

Panthère
la source
Dans ce cas, puisqu'il s'agit de scripts issus d'une application, je vous conseille de mettre des liens symboliques pour les scripts dans le ~/bin, pour une meilleure maintenabilité.
elias
3

une autre solution

  1. Ajouter un chemin à ~/.bashrcouvrir à l'aide de vim$ vim ~/.bashrc

    exemple:

    # add extra paths export PATH=$PATH:~/Scripts

  2. une fois le chemin ajouté, exécutez:

    $ source ~/.bashrc

  3. S'il est ajouté correctement, il ne devrait y avoir aucune erreur.

zulucoda
la source