Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Помогите(get opts, bash)  (Прочитано 495 раз)

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

Оффлайн MisterX_

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Помогите(get opts, bash)
« : 24 Апреля 2015, 19:07:40 »
Вобщем, мне нужен пример работы с get opts с одним параметром. Помогите пожалуйста.

Krjd

  • Гость
Re: Помогите(get opts, bash)
« Ответ #1 : 24 Апреля 2015, 20:55:05 »
MisterX_,
одна из первых ссылок в гугле...
#!/bin/bash

usage() { echo "Usage: $0 [-s <45|90>] [-p <string>]" 1>&2; exit 1; }

while getopts ":s:p:" o; do
    case "${o}" in
        s)
            s=${OPTARG}
            ((s == 45 || s == 90)) || usage
            ;;
        p)
            p=${OPTARG}
            ;;
        *)
            usage
            ;;
    esac
done
shift $((OPTIND-1))

if [ -z "${s}" ] || [ -z "${p}" ]; then
    usage
fi

echo "s = ${s}"
echo "p = ${p}"


$ ./myscript.sh
Usage: ./myscript.sh [-s <45|90>] [-p <string>]

$ ./myscript.sh -h
Usage: ./myscript.sh [-s <45|90>] [-p <string>]

$ ./myscript.sh -s "" -p ""
Usage: ./myscript.sh [-s <45|90>] [-p <string>]

$ ./myscript.sh -s 10 -p foo
Usage: ./myscript.sh [-s <45|90>] [-p <string>]

$ ./myscript.sh -s 45 -p foo
s = 45
p = foo

$ ./myscript.sh -s 90 -p bar
s = 90
p = bar
http://stackoverflow.com/a/16496491/4777440

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.