История изменений
Исправление andytux, (текущая версия) :
неужели за столько лет нельзя написать какую то функцию, эти параметры ведь в каждом скрипте используется…
Это вопрос к самому себе.
Каждый новый скрипт начинается с функции:
arg_parse()
{ # arg_parse 21
[ "$#" = '0' ] && usage && exit 0
[ "$#" = '1' ] && case ${1} in
--version|-v) echo "$(basename "$0") ${version}"; exit 0;;
*) ;;
esac
for i; do
case ${i} in
--arch=*) arch="${i#--arch=} ${arch}";;
--dest=*) dest=${i#--dest=};;
-i=*) icon=${i#-i=};;
--icon=*) icon=${i#--icon=};;
-l=*) lng=${i#-l=};;
--lng=*) lng=${i#--lng=};;
--log) msg='0'; msg_svc='log';;
--log=*) msg=${i#--log=}; msg_svc='log';;
--notify) msg='0'; msg_svc='notify';;
--notify=*) msg=${i#--notify=}; msg_svc='notify';;
--speech) msg='0'; msg_svc='speech';;
--speech=*) msg=${i#--speech=}; msg_svc='speech';;
--src=*) src=${i#--src=};;
--std) msg='0'; msg_svc='std';;
--std=*) msg=${i#--std=}; msg_svc='std';;
-u=*) util=${i#-u=};;
--util=*) util=${i#--util=};;
-v=*) version=${i#-v=};;
--version=*) version=${i#--version=};;
--) ;;
*) if [ -n "${opt}" ]; then opt="${opt} ${i}"; else opt="${i}"; fi;;
esac
done
}
Скопировал, вставил, ненужное убрал, нужное по шаблону добавил. Помимо парсинга, при запуске без параметров выводит ‘Usage: …’ (тоже функция), с одним параметром ‘–version’ - показывает версию.
Исходная версия andytux, :
неужели за столько лет нельзя написать какую то функцию, эти параметры ведь в каждом скрипте используется…
Это вопрос к самому себе.
Каждый новый скрипт начинается с функции:
arg_parse()
{ # arg_parse 21
[ "$#" = '0' ] && usage && exit 0
[ "$#" = '1' ] && case ${1} in
--version|-v) echo "$(basename "$0") ${version}"; exit 0;;
*) ;;
esac
for i; do
case ${i} in
--arch=*) arch="${i#--arch=} ${arch}";;
--dest=*) dest=${i#--dest=};;
-i=*) icon=${i#-i=};;
--icon=*) icon=${i#--icon=};;
-l=*) lng=${i#-l=};;
--lng=*) lng=${i#--lng=};;
--log) msg='0'; msg_svc='log';;
--log=*) msg=${i#--log=}; msg_svc='log';;
--notify) msg='0'; msg_svc='notify';;
--notify=*) msg=${i#--notify=}; msg_svc='notify';;
--speech) msg='0'; msg_svc='speech';;
--speech=*) msg=${i#--speech=}; msg_svc='speech';;
--src=*) src=${i#--src=};;
--std) msg='0'; msg_svc='std';;
--std=*) msg=${i#--std=}; msg_svc='std';;
-u=*) util=${i#-u=};;
--util=*) util=${i#--util=};;
-v=*) version=${i#-v=};;
--version=*) version=${i#--version=};;
--) ;;
*) if [ -n "${opt}" ]; then opt="${opt} ${i}"; else opt="${i}"; fi;;
esac
done
}
Скопировал, вставил, ненужное убрал, нужное по шаблону добавил. Помимо парсинга, при запуске без параметров выводит ‘Usage…’, с одним параметром ‘–version’ - показывает версию.