bash command line:
One of most powerfull feature of bash is: You could try inline near every part of your script.
For this, simply open any terminal window and try :
set -- "Full Name" "password" csv V1
Then
echo $1
Full Name
echo ${@:3}
csv V1
echo ${@:0:3}
/bin/bash Full Name password
echo ${@:1:3}
Full Name password csv
so
userName=$1
passWord=$2
datas=${*:3}
dataVersion=$4
printf '%-12s <%s>\n' userName "$userName" passWord "$passWord" \
datas "$datas" dataVersion "$dataVersion"
Must produce:
userName <Full Name>
passWord <password>
datas <csv V1>
dataVersion <V1>
Using shift
Or ...
set -- "Full Name" "password" csv V1
Then
userName=$1
shift
passWord=$1
shift
datas=$*
shift
dataVersion=$1
printf '%-12s <%s>\n' userName "$userName" passWord "$passWord" \
datas "$datas" dataVersion "$dataVersion"
will produce:
userName <Full Name>
passWord <password>
datas <csv V1>
dataVersion <V1>
Regarding tripleee's comment about capitalized variable names, my preference is to use lowerCamelCase.