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.
|
||||
|
||||
### Gérer arguments dans son script
|
||||
### Gérer arguments donné au script
|
||||
|
||||
Exemple :
|
||||
|
||||
~~~{.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
|
||||
|
|
Loading…
Reference in a new issue