Table des matières

Rédaction de scripts Shell

#! et exécution

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

Récupération des arguments

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 :

script
#!/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.

Liens à visiter

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !