Lecture d’arguments en bash
Pour parser les arguments d’une commande bash voici un exemple de traitement.
TEMP=`getopt -o e:m:v:r:s: --long env:,module:,version:repository:,script: \
-n 'deploy.sh' -- "$@"`
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
eval set -- "$TEMP"
while true ; do
case "$1" in
-e|--env)
ENVIRONMENT=$2 ; shift 2 ;;
-m|--module)
MODULE=$2 ; shift 2 ;;
-v|--version)
VERSION=$2 ; shift 2 ;;
-r|--repository)
REPOSITORY=$2 ; shift 2 ;;
-s|--script)
SCRIPT=$2 ; shift 2 ;;
--) shift ; break ;;
*) echo "Error with[$1:$2]" ; exit 1 ;;
esac
done
if [ -z "$ENVIRONMENT" ]; then echo "ENVIRONMENT variable is not set";fi
if [ -z "$MODULE" ]; then echo "MODULE variable is not set";fi
if [ -z "$VERSION" ]; then echo "VERSION variable is not set";fi
if [ -z "$REPOSITORY" ]; then REPOSITORY="releases";fi
if [ -z "$SCRIPT" ]; then SCRIPT="deploy.yml";fi