Есть следующий код. Места параметров зашиты и мне бы хотелось добавить к этому чуду нормальные параметры сохраняя логику:
-o и --output= для output (default: "./output.out")
-m и --mode= для mode (default: "HEX")
-f и --file= для command (запуск main.sh MUL.aic (т.е. без -f) тоже должен быть допустим) (без этого параметра должен выводить справку)
-i и --init= для initialiser (default: "00000000")
-d и --deep= для отдельного (внизу не перечислен) параметра глубины. (default: "0")
-h и --help для вывода справки
Научите, пожалуйста, как так сделать?
# USE: main.sh MUL.aic INTS ./output.out DEADBEEF
# $0 $1 $2 $3 $4
# filename command mode output initialiser
# [M] [M] [M] [O] [O]
PAR0="$0"
PAR1="$1"
PAR2="$2"
PAR3="$3"
PAR4="$4"
if [ -z "$PAR1" ] || [ -z "$PAR2" ]
then
echo "Aicha v.0.2 LGPL v3"
echo "Use: main.sh <file> <format> (output file) (initialiser sequence)"
echo "Allowed formats: ASCII, HEX, INTS"
exit 0
fi
if [ "$PAR2" == "HEX" ]
then
FORMAT="HEX"
PAR2="0"
elif [ "$PAR2" == "ASCII" ]
then
FORMAT="ASCII"
PAR2="0"
elif [ "$PAR2" == "INTS" ]
then
FORMAT="INTS"
PAR2="0"
fi
if [ -z "$PAR3" ]
then
OUTPUT="./output.txt"
else
OUTPUT="$PAR3"
fi
if [ -z "$PAR4" ]
then
INITER="00000000"
else
INITER="$PAR4"
fi