Сайт | Скачать | Видео | Wiki

Автор Тема: getopt  (Прочитано 295 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 5371
  • Репутация: +136/-0
  • Старый чайник
getopt
« : 04 Март 2017, 17:39:10 »
У меня нет опыта использования getopts.
Потренируйтесь. Там ничего особо сложного нет.
Моноблок Lenovo IdeaCentre c200
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (atom N270, intel GMA 950)

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 5371
  • Репутация: +136/-0
  • Старый чайник
Re: getopt
« Ответ #1 : 04 Март 2017, 17:48:45 »
сделайте
Что и где?
Кстати в моём mkaufs самый простой вариант.
« Последнее редактирование: 04 Март 2017, 17:50:46 от DdShurick »
Моноблок Lenovo IdeaCentre c200
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (atom N270, intel GMA 950)

Онлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1151
  • Репутация: +10/-0
    • chat.magos-linux.ru
Re: getopt
« Ответ #2 : 04 Март 2017, 17:52:55 »
сделайте
Весь сыр-бор только чтоб писать -dq вместо -d -q, остальное работает. Стоит ли? Парсер получится больше остального скрипта наверное :)
magos-linux.ru - форум
chat.magos-linux.ru - беседка (чат)

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 5371
  • Репутация: +136/-0
  • Старый чайник
Re: getopt
« Ответ #3 : 04 Март 2017, 18:06:27 »
 Но учиться тоже надо.
Моноблок Lenovo IdeaCentre c200
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (atom N270, intel GMA 950)

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 20138
  • Репутация: +147/-0
    • PuppyRus-A
Re: getopt
« Ответ #4 : 04 Март 2017, 18:08:02 »
Если все просто - пусть Дядя Шурик сделает, а мы поучимся. "За базар" надо бы ответить  ;)

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 5371
  • Репутация: +136/-0
  • Старый чайник
Re: getopt
« Ответ #5 : 04 Март 2017, 18:39:52 »
Дядя Шурик сделает
Без проблем, только надо точно знать что и где. Какие будут ключи? С какими аргументами? А то у вас какие-то "мечты виндусятника"
Вот образец, надо только буковки подставить: O=$(getopt -l help,root: -- hr: $@) || usage
eval set -- "$O"
for OPT in $O
do
case "$OPT" in
-h|--help) usage; break;;
-r|--root) AUFSROOT="$2"
shift 2;;
--) shift; break;;
esac
done
« Последнее редактирование: 04 Март 2017, 18:42:04 от DdShurick »
Моноблок Lenovo IdeaCentre c200
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (atom N270, intel GMA 950)

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 20138
  • Репутация: +147/-0
    • PuppyRus-A
Re: getopt
« Ответ #6 : 05 Март 2017, 10:47:22 »
https://rtfm.co.ua/bash-funkciya-getopts-ispolzuem-opcii-v-skriptax/

Из Вашего примера не ясно как сделать:
script 1 2 -dq  3 -b 4
used key d
used key g
чтобы переставлять ключи в любом порядке

Онлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 1151
  • Репутация: +10/-0
    • chat.magos-linux.ru
Re: getopt
« Ответ #7 : 05 Март 2017, 11:01:30 »
С getopt возможны грабли с -comp, там нужно передавать несколько параметров разделенных пробелом.
З.Ы. getopt и getopts не одно и тоже.
magos-linux.ru - форум
chat.magos-linux.ru - беседка (чат)

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 20138
  • Репутация: +147/-0
    • PuppyRus-A
Re: getopt
« Ответ #8 : 05 Март 2017, 11:19:26 »
С getopt возможны грабли с -comp,
Я пока не предлагаю переделывать. Учимся

Оффлайн DdShurick

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 5371
  • Репутация: +136/-0
  • Старый чайник
Re: getopt
« Ответ #9 : 05 Март 2017, 13:01:35 »
не ясно как сделать:
O=$(getopt -l help -- dq:b: $@) || usage
eval set -- "$O"
for OPT in $O
do
case "$OPT" in
--help) usage; break;;
-b) KEY_B="$2"; shift 2;;
-d) KEY_D="DIR"; shift;;
-q) KEY_Q="$2"; shift 2;;
--) shift; break;;
esac
done
l (long) - длинный ключ, двоеточие после ключа обозначает ключ с аргументом. Вместо значения можно вписать действие (например -d) mkdir $SYSMNT/aufs1;; )

Моноблок Lenovo IdeaCentre c200
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250)
Nettop Asus Eee Box PC B202 (atom N270, intel GMA 950)