Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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 !
doc/programmation/shell/scripts.txt · Dernière modification: 23/12/2015 19:16 par milou

Pied de page des forums

Propulsé par FluxBB