LINUX.ORG.RU

bash getops

 


0

3

Нужен парсинг аргументов

script.sh -fl
script.sh -f /etc/passwd -l ololo
ключи -f -l должны быть как пустыми так и с аргументом. Как я понял при помощи getopts, getopt такого не сделать?

★★

Ответ на: комментарий от zolden

увы нет там в общей сложности 6 ключей 2 из которых с аргументами, 4 просто флаги.

st4l1k ★★
() автор топика

man getopts, а также google://advanced bash scription guide (в нем есть одленый раздел с примерами)

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

прибегаю к форуму в самый последний момент, man getopt и другие источники, смотрел в первую очередь.
Это конечно можно ручками все распарсить, вопрос собственно в наличии средств для упрощения данной задачи.

st4l1k ★★
() автор топика

getopts не поможет, только getopt

#! /bin/bash

eval set -- $(getopt -n script.sh -o f::l:: -- "$@")

while true ; do
        case "$1" in
                -f) F_ARG=${2:-/etc/passwd} ; shift 2 ;;
                -l) L_ARG=${2:-ololo} ; shift 2 ;;
                --) shift ; break ;;
        esac
done
ananas ★★★★★
()
Ответ на: комментарий от ananas

решил похожим способом. Но спасибо большое.

st4l1k ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.