LINUX.ORG.RU

История изменений

Исправление 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’ - показывает версию.