getopts
This commit is contained in:
parent
d4b1d29632
commit
fa0931d565
51
HowtoBash.md
51
HowtoBash.md
|
@ -158,10 +158,59 @@ nomrep=$(mktemp -d)
|
||||||
|
|
||||||
> Note: La création d'un fichier temporaire n'implique pas côté système une suppression automatique de ce dernier.
|
> Note: La création d'un fichier temporaire n'implique pas côté système une suppression automatique de ce dernier.
|
||||||
|
|
||||||
### Gérer arguments dans son script
|
### Gérer arguments donné au script
|
||||||
|
|
||||||
|
Exemple :
|
||||||
|
|
||||||
~~~{.bash}
|
~~~{.bash}
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DELAY=
|
||||||
|
NUMARG=0
|
||||||
|
FICHIER=
|
||||||
|
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
|
||||||
|
[ $# == 0 ] && break
|
||||||
|
|
||||||
|
OPTIND=1
|
||||||
|
while getopts ":d:n" opt "$@"
|
||||||
|
do
|
||||||
|
case "$opt" in
|
||||||
|
d) DELAY=$OPTARG
|
||||||
|
(( NUMARG+=1 ))
|
||||||
|
;;
|
||||||
|
n) NOMAIL=true
|
||||||
|
(( NUMARG+=1 ))
|
||||||
|
;;
|
||||||
|
:) echo "manque un arg"
|
||||||
|
;;
|
||||||
|
*) echo "connait pas"
|
||||||
|
exit1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
[ -z "$1" ] && break
|
||||||
|
|
||||||
|
#FICHIER=$1 si FICHIER non initialisé
|
||||||
|
[ -z "$FICHIER" ] && FICHIER=$1 || { echo "Fichier en trop"; break; }
|
||||||
|
shift
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "==RESULTAT=="
|
||||||
|
|
||||||
|
echo "ARG " $NUMARG
|
||||||
|
echo "FICHIER=" $FICHIER
|
||||||
|
echo "DELAY=" $DELAY
|
||||||
|
echo "NOMAIL=" $NOMAIL
|
||||||
|
|
||||||
|
exit 0
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Lire les commandes intégrés dans BASH
|
### Lire les commandes intégrés dans BASH
|
||||||
|
|
Loading…
Reference in a new issue