LINUX.ORG.RU
ФорумTalks

Какой самый сложный bash скрипт Вы создавали?

 , ,


0

2

Иногда я ловлю себя на том, что пишу 100-строчные

bash-скрипты для вещей, которые, вероятно,

можно сделать в 5 строк с помощью

другого инструмента… но где же веселье в этом?

Интересно, какие нелепые, но функциональные bash-скрипты вы

создали, которые заставили вас сказать: «все в порядке».

Перемещено CrX из development



Последнее исправление: antonio-an (всего исправлений: 1)
Ответ на: комментарий от vbr

Ну вот я не так уж редко сталкиваюсь с тем, что в POSIX всё не так очевидно. Вот недавно - все пишут cp -r. А такого флага в POSIX нет, надо писать cp -R

А что в этом неочевидного? Чётко и однозначно же написано вроде.

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

Ну… Примерно. В основном просто проверял достаточно раз, чтобы хорошо запомнить. Что используется реже — да, загляну.

CrX ★★★★★
()

которые заставили вас сказать: «все в порядке».

20 строчек, вот они

Если нужно именно прям нелепое, то когда у меня были «разборки» с провайдером и самой игрой на тему «у меня игрушка не работает :(», было написано вот это

Оно генерировало вот это

И результат последнего, включая сгенерированный скрипт, отсылалось как логи и метод проверки.


А так обычно, скрипты на баше удаляю, нахренакал как попало для пару раз запустить и удалил, надо будет в следующий раз снова нахренакаю. За исключением скриптов, которые гарантированно нужны, и явно создавались для периодической автоматизации рутины. В остальном для меня скрипты на баше это просто чуть расширенная работа в терминале, просто удобнее в файле что-то более структурное описать чем напрямую в терминале и всё.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от anc

Ну что-то вроде того :) Но вообще по такому сценарию форум я чинил тамошний

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

А как ты ее монетизировал? Ради чего она была сделана?

Только ради денег. Часть трафика рекламодатели покупали, часть сливал на партнерки. Тогда этот бизнес (массовое привлечение оффлайн бизнеса в онлайн) в рунете только начинался, поэтому было весьма неплохо.

soomrack ★★★★★
()

108 строк. Из них только 24 — работающие команды, остальное — комментарии и устаревшие варианты, которые могут когда-нибудь ещё пригодиться.

question4 ★★★★★
()

Скрипт для установки модов для морроувинда на баше как-то разросся в монстра на сотни строк со своей системой рецептов и с фиксацией результата по дереву файлов с сопоставлением их по хэшу.

Я бы сказал, что где-то после сотни строчек затраты на отлавливание не очевидного поведения в баше перестают быть оправданными и лучше переключиться на нормальный язык. Ну и, в целом, лучше не писать ничего на bash/zsh и даже для простых целей использовать fish, там сюрпризы на пару порядков реже встречаются.

altwazar ★★★★★
()

Есть маленький проектик для сборка статистики с сетевых интерфейсов (у меня есть своя секретная сеть). Всё это для поиска потерь и прочего. Для сбора статистики со всех точек передачи трафика, консолидирования, запуска нагрузки и сравнения данных до запуска нагрузки и после на колене написал десяток файлов на баше общей длиной в ~900 строк. Наверно мой самый большой проект. Можно наверно на питоне написать быстрей и аккуратней, но баш я знаю лучше чем питон. А форматирование отступами вообще меня бесит! А перл я уже совсем забыл.

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

Объявлять bash как зависимость даёт более предусказуемый результат, чем пытаться пистаь подо всё а тетсировать на 1-2х - потому что в итоге выясняется что оно всё равно на том на чем не тетсировали не работает

Если внезапнейше потребуется выполнить на системе где нет bash - то как и с любой зависимостью - придётся его туда ставить

На макоси вместо баша – забагованный копролит, который все равно придется отдельно тестировать.

anonymuse
()
Ответ на: комментарий от vbr

POSIX shell совместимые

Как ты это определяешь?

По формальному соответствию спеке и фактическому на целевой системе.

anonymuse
()
Ответ на: комментарий от vbr

Ты со скриптами столкнёшься везде, в любом линуксе половина выполняемых файлов это *sh скрипты.

Неть, гораздо меньше. На моей текущей обжитой системе больше питона.

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

На любой оболочке? Легче всего на ежедневно используемой.

anonymuse
()
Ответ на: комментарий от soomrack

Платили за клики по их баннерам, которые я крутил.

Это называется «покупка траффика» а не «открутка баннерной рекламы»?

Xintrea ★★★★★
()

Какой самый сложный bash скрипт Вы создавали?

bash-скрипты не про сложность. Это про удобство.

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

Это называется «покупка траффика» а не «открутка баннерной рекламы»?

Называют обычно по сути происходящего. Если ты просто за деньги показываешь баннеры, то это открутка, но она была доступна только жирным площадкам, т.к. платить чисто за показ могли только бренды, для своего продвижения, чтобы быть на виду. Более привычным было оплата за клики по баннерам, т.е. за переходы на площадку рекламодателя. Поэтому все воспринималось в терминах траффика, т.е. хитов (открытие вебстраницы, по показам страниц) или хостов (уникальные посещения – т.е. по головам счет). Можно было купить трафик, можно было продать, формы покупки и продажи были разные: блинды – по сути просто редиректы на чужой сайт, можно было через баннеры – этот траф более осмысленный, т.к. человек сам ткнул, были варианты с просмотром рекламы (тот же редирект) для доступа к контенту файлхостингов и т.д. и т.п. Веселое время было.

soomrack ★★★★★
()
Ответ на: комментарий от antonio-an

Если ставить переводы строк после точек и запятых, то простой /bin/diff сможет проще показать разницу между изменениями.

(Что, тем не менее, для меня лично не оправдывает кривое форматирование.)

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

Что за очередной изврат с форматированием?
Всякий тупняк видел, и запятые где не надо, и пробелы перед знаками препинания…
Но разбиение предложений абзацами что-то новое.
Зачем?

Ну ты же зачем-то перевод строки в конце каждого предложения ставишь (я сперва подумал, что пародируешь ТС, но оказалось, не только здесь такая дичь). А он ещё дальше пошёл.

Может хочет поэтом стать. Ритм и рифма пока не даются, но надо же с чего-то начинать :D

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

Не знаю с каких, но смотрится весьма странно. Хотя, конечно, не так странно, как в ОП.

Действительно раздельные куски лучше разделять на абзацы (а не жёстким переводом строки), а связанные друг с другом предложения тем более лучше никак не разделять.

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

Не знаю с каких, но смотрится весьма странно. Хотя, конечно, не так странно, как в ОП.

Ну то есть если ты вдруг случайно включишь себе User line break, то с ума сойдешь от странности? :)

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

Ну то есть если ты вдруг случайно включишь себе User line break, то с ума сойдешь от странности? :)

Почему? Абзацы всё ещё будут разделены пустой строкой (ну то есть, двумя жёсткими переносами строк), что выглядит более нормально. А внутри абзацев я переносов строк не ставлю (кроме случаев, где они нужны, конечно).

А user line break я себе включать не хочу, спасибо. Мне более чем хватает возни с ним, когда с ним новости постят ;)

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

Вот лично мне бывает сложно и лень читать длинную одноабзацную портянку. А разбивать на абзацы её смысла нет, потому что это единое по смыслу сообщение. И тут ИМХО поделить его на переходы строк прям то, что надо: и деление соблюлось, чтобы читать было проще, и не разнесло пустыми линиями по высоте.

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

Если можно разделить по переходам строк, то можно разделить и по абзацам. А перевод строки после каждой точки — всё же дичь. Читать примерно так же тяжело, как и портянку без абзацев, если она длинная. Но у тебя обычно не длинные, там вполне нормально читается в один абзац. Вот как то сообщение, на которое я отвечаю — прекрасно всё читается, ничего не режет глаз.

CrX ★★★★★
()

Писал систему сборки (загрузки и отладки) для TinyAVR, но не в одном файле, в разбивая на импортируемые модули (функции).

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

А перевод строки после каждой точки — всё же дичь.

Конечно. Поэтому я так и не делаю. Я по смыслу перевожу.

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

Поэтому я так и не делаю. Я по смыслу перевожу.

Какой самый сложный bash скрипт Вы создавали? (комментарий) — вот здесь вторая и третья строки — чуть ли не части одного предложения. Многозначительного многоточия более чем достаточно, перевод строки в этом месте уменьшает читаемость. Да и с первым они связаны достаточно, чтобы никак (кроме точки) не разделать. Ну вопрос из одного слова да, можно для пущего смыслового ударения было бы в отдельный абзац выделить. А можно и не выделять.

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

Ну а я вот предпочёл выделить.

Специально
для
тебя
могу
писать
вот
так,
раз
тебя
переводы
строки
так
задевают.

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

Ты скажи, зачем ты предложения по абзацам разрываешь? Это-то не баш, и это реально тяжело читать.

P.S. А, уже написали.

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

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

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

Ты знаешь, на одежду, причёску и бирюльки мне почти всегда пофиг.

А вот когда человек что-то пишет другим людям, но не даёт себе труда писать грамотно или нормально текст оформить – уже не пофиг. Это значит, что он свои накладные расходы на общение переваливает на других людей.

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

Кстати, я, кажется, догнал.

Первая версия поста (до правки) была оформлена нормально. А потом он взял и наставил разделителей.

Похоже, специально захотел, чтобы тема сама стала похожа на баш-скрипт.

«Догнал» – не значит «одобряю», если что.

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

Ты знаешь, на одежду, причёску и бирюльки мне почти всегда пофиг.

Мало пересекался? Это и значит,

что он свои накладные расходы на общение переваливает на других людей.

Желание самовыражения не может не отражаться негативно на коммуникации.

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

Мало пересекался?

От тебя я как-то ожидал чего-то интереснее, чем умозаключения уровня бабы Ванги. Я разные причёски и бирюльки видел. Нет, если от человека пахнет козлом, он не даёт себе труда принять душ хотя бы через день – это уже посягательство на других людей. Но это уже не про одежду и бирюльки.

Желание самовыражения не может не отражаться негативно на коммуникации.

НЕТ. Точнее – может, в каких-то случаях. Но совершенно не обязано.

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

От тебя я как-то ожидал чего-то интереснее, чем умозаключения уровня бабы Ванги.

Вот жеж. Иногда я слышу что-то подобное в свой адрес и чувствую какое-то странное чувство, как будто вскрылась моя тщательно скрываемая недалёкость, но — я ведь её и не скрывал никогда 😁

papin-aziat ★★★★★
()

bash-скрипты для вещей, которые, вероятно, можно сделать в 5 строк с помощью другого инструмента

В баше обычно тоже за 5 строк, а то и за одну можно уложиться, если вызывать готовые инструменты, а не костылить логику. Остальное - обвязка и всякие corner case.

Но вообще иногда приходится писать довольно большие для обработки текста, и тут он хорош скорее для прототипирования. Если саму логику обработки переписать на awk, работать будет в сотни раз быстрее.

nebularia ★★★
()

у меня как-то раз получилось 5 мегабайт(!!!) кода на баше.

Rastafarra ★★★★
()

На старой работе остался bash-скрипт более 6000 строк, из них ~95% команда printf. Все еще работает.

foxy_ant ★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)