La première ligne d'un script shell doit toujours commencer par #!
, suivi ensuite de l'interpréteur de commande à utiliser.
Si vous n'utilisez pas de commande propres à bash
ou zsh
, vous pouvez laisser l'interpréteur de commande par défaut :
#!/bin/sh
Si vous voulez pouvoir exécuter votre script, n'oubliez pas de donner les droits correspondant à l'utilisateur devant l'exécuter.
Par exemple :
chmod a+x monscript.sh
Ou encore :
chmod root:admin monscript.sh
chmod 750 monscript.sh
Voir ce lien où il est expliqué trois méthodes d'exécution d'un script : bash-les-differents-caracteres-speciaux
L'argument 0 est le chemin utilisé pour exécuter le programme.
Exemple, cela peut-être ./monscript
ou monscript
s'il est dans le PATH, ou même ./un-lien-vers-mon-script
si vous avec utilisé ln
.
Il est accessible via la variable $0
.
Le premier argument est ensuite accessible via $1
, le deuxième via $2
, etc.
L'ensemble des arguments est accessible via $@
alors que la concaténation de tous les arguments (séparés par des espaces) est accessible via $*
.Le nombre d'arguments est accessible via $#
.
Voir : bash-les-differents-caracteres-speciaux
La commande shift
permet de décaler tous les arguments vers la gauche ($1
désigne le second, etc.).
Exemple :
#!/bin/sh echo "Commande initiale : $0 $@" N=0 while [ -n "$1" ]; do N=$(($N+1)) echo "Argument $N : $1"; shift; done
Pour tout comprendre de cet exemple voir les Fonctionnalités avancées du Shell ainsi que les liens que vous y trouverez.