Est-il possible d'exécuter mes scripts situés dans ~/scripts
à partir de n'importe où?
Dites que je veux exécuter ./scriptname
quel que soit mon répertoire de travail actuel.
Vous pouvez ajouter ~/scripts
à votre variable d'environnement $PATH
. Ensuite, vous pouvez exécuter scriptname
de n’importe où (mais pas ./scriptname
, car le ./
désigne le répertoire en cours).
Cette réponse montre comment ajouter ~/bin
à $PATH
, mais vous pouvez faire de même avec ~/scripts
bien sûr.
Ajouter
export PATH=$PATH:~/scripts
à la fin de votre fichier ~/.bashrc
. Cela vous permettra d'exécuter vos scripts dans ~/scripts/
en tapant simplement scriptname dans le bash. Vous devez vous déconnecter pour que cela fonctionne dans votre session (vous pouvez tester les scripts en ouvrant un nouveau terminal).
J'ajoute d'habitude
export PATH=$PATH:~/bin
sur mon chemin, puis créez des liens symboliques vers les scripts et les programmes que je souhaite disposer dans ma session.
cd ~/bin
ln -s ~/Tools/Eclipse3.7/Eclipse
# which will create a symlink in ~/bin/ with the name Eclipse
# pointing to ~/Tools/Eclipse3.7/Eclipse which allows me to execute
# the Eclipse in ~/Tools/Eclipse3.7/
Notez que les fichiers de chemin ont une priorité. Si j'ai déjà installé Eclipse via ubuntu, il effectuera d'abord une recherche dans Eclipse ailleurs que dans ~/bin/
. Si vous voulez changer ce comportement, exportez simplement le répertoire en sens inverse:
export PATH=~/bin:$PATH
Assurez-vous que les scripts de votre répertoire de scripts sont exécutables, sinon l'exportation n'aura aucun effet.
Vous pouvez regarder les chemins disponibles en tapant
echo $PATH
Si vous souhaitez voir toutes les variables d’environnement, saisissez env
dans votre console.
Deux manières:
./
, par exemple ~/scripts/scriptname
$PATH
et appelez vos scripts Shell sans le code précédent ./
, comme scriptname
name__