LINUX.ORG.RU

Длинные или короткие параметры в shell-скриптах?

 ,


0

1

У многих команд параметры можно указывать в коротком виде (например -r) или в длинном виде (например --recursive) Вроде всегда читал, что короткие параметры нужно использовать для интерактивных shell-сессий, а длинные в скриптах. Но всегда ли это так?

Как вы думаете, как лучше писать в скриптах? Несколько примеров ниже

mkdir -p a/b
mkdir --parents a/b
curl -fLsS "${url}" | tar -xzv -C /opt
curl --fail --location --silent --show-error "${url}" | tar --extract --gzip --verbose --directory=/opt

Честно говоря я в затруднении. Лично для меня mkdir -p читается и понимается проще, а что такое --parents я и не сразу соображу.

★★★

Кстати пну опенсорс про параметры ком.строки. Каждый раз надо угадывать, -v это запуск демона с вербозити или показать версию? А -V? А почему нет более однозначных --verbose и --version? Особо морозит, когда нету --help - это как вообще?! В одном месте --help, в другом -h, в третьем -?, в четвёртом при запуске без параметров.

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

Каждый раз надо угадывать, -v это запуск демона с вербозити или показать версию? А -V?

А иногда это рулится через --debug или подобное. ^_~

Не скажу про всех, но у меня всегда -v это verbose, а -V это version. И отдельно -d для дебага.

Особо морозит, когда нету –help - это как вообще?! В одном месте –help, в другом -h, в третьем -?, в четвёртом при запуске без параметров.

А ман открыть уже религия не позволяет? (=

mord0d ★★★★★
()
Ответ на: комментарий от yu-boot

Это зависит от языка и «стандартной» либы для парсинга аргументов. На скриптах эти аргументы можно разобрать и без либ, в вот остальные что-то стандартное используют типа getopt. Хелп с одной чертой от гошников. Они альтернативно-одаренные ребята, у них все ни как у людей.

rtxtxtrx
()

Стараюсь писать длинные в скриптах. Если использую короткие, то пишу сверху коммент что же программа делает. Стараюсь не делать исключений для того, что кажется очевидным, т.к. бывает, что неочевидно другому или мне самому через полгода.

blex ★★
()
Последнее исправление: blex (всего исправлений: 1)
Ответ на: комментарий от mord0d

Когда надо быстро, маны нечитабельны по большей части. Хз кто придумал их так писать. Их надо как брошюрку целиком читать, чем пытаться по / угадать правильное слово в поиске. В гугел переключаться невкусно и тоже скорость теряешь. Ну казалось бы, забыл ключик - на тебе --help, нет хлеба - магазин за углом. Нет, надо извращаться кто во что горазд. Предусмотреть все 3 ключа для хелпа так сильно раздует бинарник и исходник? Хуже я видел только в фряхе, где походу в хелпах в стандартных утилитах на полном серьёзе экономили байты.

yu-boot ★★★★
()
Ответ на: комментарий от krasnh

Не помню, откуда "-" взялся, но переучивать руки смысла ноль, и так мгновенно. «ps -aux» ещё моё любимое, в древних дистрах помню даже был варнинг на этот лишний минус :)

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

Хуже я видел только в фряхе, где походу в хелпах в стандартных утилитах на полном серьёзе экономили байты.

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

Но вот маны во фре очень даже хороши!

mord0d ★★★★★
()

нормальные эйпиаи и тулы подсказывают, что у каждого параметра должна быть и короткая версия и длинная, но в скриптах нет нормального инструмента такое сделать без вывиха себе всего на свете. У стандартного бэшевского гетопта(штука для удобного управления параметрами в скрипте) короткие могут состоять только из одной буквы, что накладывает некоторые ограничения прежде всего на их количество, как следствие выглядит логичной такая модель: короткие для управляющих параметров, длинные для конфигурирующих

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)