From fa0931d5653f79854f7f6c1b0f7aa0d4f9b2d9b0 Mon Sep 17 00:00:00 2001 From: pdiogoantunes Date: Wed, 28 Jun 2017 12:03:16 +0200 Subject: [PATCH] getopts --- HowtoBash.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/HowtoBash.md b/HowtoBash.md index a0a6bd6e..e842df93 100644 --- a/HowtoBash.md +++ b/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