111 votes

Comment rendre un shell script global ?

Je suis sur Mac OS 10.6, et j'essaie d'apprendre une ou deux choses sur les scripts shell. Je sais comment enregistrer un script shell script et le rendre exécutable, mais je me demande ce que je peux faire ou où je peux enregistrer le fichier pour le rendre global (c'est-à-dire accessible quel que soit le dossier dans lequel je me trouve).

Par exemple, si j'enregistre un fichier .sh dans le répertoire /Users/nom d'utilisateur/ et que je le rends exécutable, je ne peux exécuter ce script que dans ce répertoire spécifique. Si je navigue vers /Users/nom d'utilisateur/Téléchargements, par exemple, je ne peux pas exécuter le script.

De plus, toute suggestion de ressources pour en apprendre davantage sur les scripts shell serait utile. Merci de votre compréhension.

170voto

unbeli Points 9573

/usr/local/bin serait l'endroit le plus approprié. Sous Mac OS X, il se trouve dans le répertoire PATH par défaut

54voto

Piqué Points 350

Il y a deux façons de procéder -

  1. Placez votre script dans usr/local/bin et assurez-vous qu'il est exécutable(chmod +x my_script)(Ceci est déjà défini dans le chemin, vous pouvez vérifier en faisant un echo $PATH)
  2. Créez un dossier appelé bin dans votre répertoire personnel. (Pour vos scripts personnels)
    • cd ~ (vous amène à votre répertoire personnel)
    • mkdir bin (créer un dossier bin)
    • vim .bash_profile (pour définir la variable d'environnement path)
    • export PATH=~/bin:$PATH (Presser i puis ajouter cette ligne et ensuite faire esc et taper :wq)
    • Il vous suffit maintenant de taper le nom de votre script et de l'exécuter depuis n'importe quel endroit.

** NOTE : Si vous souhaitez exécuter le script avec une commande abrégée plutôt que de taper votre nom de fichier complet, ajoutez ce qui suit à votre .bash_profile :
alias myscript='my_script.sh'
Vous pouvez ensuite exécuter le script en tapant simplement myscript . (vous pouvez ajouter l'alias de votre choix)

46voto

Bryan Oakley Points 63365

Traditionnellement, ces scripts sont placés dans le répertoire ~/bin (c'est-à-dire le répertoire bin de votre répertoire personnel) ou /usr/local/bin/ Le premier signifie que le script ne fonctionnera que pour vous, le second est destiné aux script que vous voulez que n'importe qui sur le système puisse exécuter.

Si vous le mettez dans ~/bin vous devrez peut-être l'ajouter à votre variable d'environnement PATH. /usr/local/bin devrait déjà être sur le chemin.

6voto

Sher Mohammad Points 79

Dans le système d'exploitation Mac

  • Ouvrez le fichier bash ~/.bashrc.
  • ajoutez le chemin de votre script dans votre fichier bashrc , en utilisant export PATH="$PATH:/Users/sher.mohammad/Office/practice/practiceShell"
  • Ouvrez votre ~./profil_bash et ajouter [[ -s ~/.bashrc ]] && source ~/.bashrc
  • ouvrir une nouvelle fenêtre de terminal Maintenant, chaque fois que vous ouvrirez votre terminal, votre script sera chargé.

6voto

AnonymousX Points 41

Celle-ci est super facile si vous êtes familier avec votre fichier bashrc ! Cette opération utilise uniquement votre fichier .bashrc et ne prend que 2 secondes.

(J'utilise Arch Linux Manjaro donc j'utilise .bashrc situé dans mon répertoire personnel)

Le code à placer dans votre fichier .bashrc :

# Simple bashrc method to launch anything in terminal from any directory

YOURCOMMAND () {
  cd /path/to/directory/containing/your/script/ && ./YOURSCRIPT
}

Comme vous pouvez le voir, vous utilisez d'abord la simple commande 'cd' et lui donnez le répertoire de l'emplacement scripts, puis vous utilisez '&&' pour que la commande suivante soit exécutée juste après, et enfin vous ouvrez votre scripts comme vous le feriez normalement ! Super facile et sauvegardé directement dans votre fichier .bash ! :)

J'espère avoir aidé quelqu'un !

Je vous prie d'agréer, Monsieur le Président, l'expression de mes sentiments distingués,

AnonymousX

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X