jueves, 12 de septiembre de 2019

How pass arguments to bash script


The getopt() function parses the command-line arguments. 
Its arguments argc and argv are the argument count and 
array as passed to the main() function on program invocation.


This is a simple example to pass 4 arguments:

#!/bin/bash

# Reading the options
TEMP=`getopt -o u:p:h:g: --long user:,password:,home:,group: -- "$@"`

eval set -- "$TEMP"

# Extractiong options and their arguments into variables

while true ; do
        case "$1" in
                -u|--user)
                        USERNAME=$2 ; shift 2 ;;
                -p|--password)
                        PASSWORD=$2 ; shift 2 ;;
                -h|--home)
                        HOMEPATH=$2 ; shift 2 ;;
                -g|--group)
                        GROUPNAMES=$2 ; shift 2 ;;
                --) shift ; break ;;
                *) echo "Internal error!" ; exit 1 ;;
        esac
done

echo "USERNAME: $USERNAME"
echo "PASSWORD: $PASSWORD"
echo "HOME: $HOMEPATH"
echo "GROUPNAMES: $GROUPNAMES"


Save the example as example_args.sh and then you can test the script:

 ./example_args.sh --user cristian --password 123456 --home /home/cristian --group mygroups

code: https://github.com/crismunoz/LinuxExamples

No hay comentarios:

Publicar un comentario