Я создал скрипт Bash, и у меня есть довольно нечеткая проверка аргументов. Я знаю о getopt и getopts, но думал, что они были излишними. Вот как я хочу использовать:
Usage: flipfile [OPTION] inputfile outputfile
Options:
-f Force. Accept ANY inputfile, not just regular files.
И мой текущий код проверки:
if [ $# -eq 2 ]; then
infile=$1
outfile=$2
elif [ $# -eq 3 -a $1 = "-f" ]; then
option=$1
infile=$2
outfile=$3
else
echo -e "Error. Usage: flipfile [OPTION] inputfile outputfile\n\n"
echo -e "Options:\n-f\tForce. Accept ANY inputfile, not just regular files."
exit 1
fi
Проверка работает. Но так как я делаю это для развлечения и для обучения, я ценю любые советы, которые могут помочь мне написать более чистые скрипты Bash.
Как бы вы улучшили этот код проверки? Используйте getopt или getopts, если считаете, что это правильное решение. Я хочу, чтобы дополнительный аргумент -f был первым аргументом. Если вы думаете, что [[ conditional-expression ]]
чище, чем у меня, смело изменяйте это тоже. Я приму ответ, который я считаю самым чистым.