[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]

[Burichan] [Foliant] [Futaba] [Greenhell] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1542660256344.jpg -(118527 B, 960x1357) Thumbnail displayed, click image for full size.
118527 No.159293  

Пишете ли вы скрипты под свои нужды?

>> No.159294  
File: 1542662470345.jpg -(143658 B, 800x789) Thumbnail displayed, click image for full size.
143658

>>159293
А работа считается своими нуждами или это нужда работодателя?

>> No.159295  

Джаваскрипты считаются?

>> No.159298  

>>159295
Да

>> No.159300  

>>159293
А то! Вот недавно случайно ухудшение качества фоточек для викимапии.

>> No.159302  

Нет нужды.
А вот в конфигах ковыряюсь.

>> No.159304  

Пишу, потому что потом этот скрипт придётся снова писать или вспоминать. А так - он всегда есть и его можно вызвать одной командой.

>> No.159430  

>>159293
Да.

Но это все равно что спросить "бьёте ли вы молотком, когда пользуетесь им?" Чтобы компьютером пользоваться, его нужно программировать. Как-то так.

>> No.159434  

>>159430
Сколько людей пользуется компьютером ни разу не прикасаясь даже к средствам, типа VBA?

>> No.159438  

>>159434
Да, можно покупать швейцарский нож и пользоваться только одним лезвием. Только, если продолжать эту аналогию, компьютер - это не швейцарский нож, а 3D-принтер по стали с держателем готовых изделий. Как ты верно заметил, подавляющее большинство людей даже предустановленное лезвие не меняет, не то что там включает 3D-принтер.

>> No.159441  

>>159438
Что можно в домашних условиях скриптами делать? Ну писал я один раз на вбс, чтобы майнер прятать, ну иногда в играх клавиатурными макросами играю. Но у меня нет ежедневных настолько рутинных операций, чтобы можно было их заскриптовать.

>> No.159443  

>>159430

>"бьёте ли вы молотком, когда пользуетесь им?"

Ошибка. Правильно: "Делаете ли вы молоток каждый раз когда хотите ударить им"

>> No.159444  

>>159443
Нет, неправильно. Просто молоток - слишком простой инструмент, поэтому и аналогия получилась совсем уж для дебилов. Это как если бы ТЭС была сравнена с водяным колесом.

>> No.159453  

>>159438
Давай без дурацких аналогий. Ты б ещё про автомобили написал.

>> No.159569  

Пишу. По необходимости, иногда от нечего делать — интересно же.
Даже прямо сейчас:

sed -E '/\s*<!--\s*$/,/\s*-->\s*$/d;
/^\s*<!--.*?-->\s*$/d;
s/(^\s*\S+)*\s*<!--.*?-->\s*/\1/g;' index.html

Непонятно, почему регулярка в третьей замене матчит строки, где есть только табуляция и комментарий, ведь сказано же — \S, непробельный символ, с квантификатором «один или больше». Но если выполнять её последней — сойдёт, иначе после неё остаётся только зияющая пустотой строка.

>> No.159570  
File: 1543941570527.png -(921960 B, 836x1101) Thumbnail displayed, click image for full size.
921960

>>159569
Для sed квантификатор один или больше это \+ а + просто матчит +.

>> No.159572  

>>159569
Дежурное напоминание: https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags

>> No.159576  
s/(^\s*\S+)*\s*<!--.*?-->\s*/\1/g;

Всё было из-за звёздочки после группы и циркумфлекса в начале.

>>159570

> Для sed квантификатор один или больше это \+ а + просто матчит +.

Нет, в расширенных регулярках, включаемых флагом «-E» — наоборот, метасимволы экранировать не нужно. По крайней мере, в ГНУтом седе так.
https://www.gnu.org/software/sed/manual/html_node/Extended-regexps.html

> The only difference between basic and extended regular expressions is in the behavior of a few characters: ‘?’, ‘+’, … when using extended regular expressions you must escape them if you want them to match a literal character.

>>159572
Да ладно тебе, всего́ лишь удаление ком̧̗м̰͍ентариев. Ничего стрaͨl̘̝̙̃ͤ͂̾̆шного н̧̯̺̠̰̟̟̝̠̣̥̩͖̲̻̙͢͡ͅе̟͚̯͈̱̳͍̳̞̟̠̪̘̱̭̯̣̠͞ͅ случ͞͏̰͙͖̗̪͔͙̩̩̭͓̥̣̺̭̝ͅитс͏̸̛̤͕̖͚̲̖ͅя̨͕͔̫̺̫̙̜̰͈͜͡͝ͅͅ

>> No.159584  

>>159453
Давай без дур аналогий вообще. Пользоваться компьютером, не программируя его - это использовать его крайне неэффективно.

>> No.159586  
File: 1544021322043.png -(495598 B, 850x1124) Thumbnail displayed, click image for full size.
495598

>>159584

>Пользоваться компьютером, не программируя его - это использовать его крайне неэффективно.

А кому эта эффективность нужна, кроме как для пользователей, чья профессиональная деятельность связана непосредственно с программированием? Для Раисы Михайловны из пятого отдела, которая вбивает циферки? Ну посидит она вечерок, другой, третий пару раз в году. Позовёт мальчика-сисадмина, если что-то поломается. Обучение программированию займёт куда больше времени, чем подготовка отчёта, который хитро считается раз в квартал.
Для Семёна, который смотрит аниму и читает картинкодоски? Ну так ему делать нечего, известное дело.
Так что говорить о неэффективности для дела, которое и эффективности не требует, не приходится.

>> No.159594  

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

>> No.159597  
File: 1544044754619.jpg -(861724 B, 1254x1771) Thumbnail displayed, click image for full size.
861724

>>159594
Чувствуешь себя неловко? Подрочи — пройдёт!

>> No.159598  

>>159293
Нет, за меня давно уже всё написали.

>> No.159612  

>>159598
Клёво тебе. А я вот заебался уже софт под себя пилить.

>> No.159642  
File: 1544121633537.jpg -(36257 B, 500x553) Thumbnail displayed, click image for full size.
36257

>>159597
Подрочишь - пропадает концентрация, упадок сил, желание что-то делать гаснет. Особенно когда ты фаппер-профессионал, и тебе нужно удовлетворить чувство вкуса, когда на первое попавшееся говно дёргать не получится - перелопатить 100 додзей и 100 страниц картинкопомоек, найти самое лучшее, потом понять что можно найти еще лучше и перелопатить еще 100 страниц помоек и додзей и обдрочиться до потери пульса. В потом с чувством выполненного долга опустошения заняться ничем...
Целая наука это. Так что не советую.

>> No.159645  

>>159293
1) Скрипт для настройки iptables из клиентского конфига openvpn. Исключает утечку ip и dns при обрыве соединения, закрывает ненужные порты и обновляет dns в resolv.conf.
Подобное есть на гитхабе, но оказалось написать проще, чем разбираться с чужим говном.
2) Небольшая программа на си для запуска команд от рута без ввода пароля. В системе всегда есть набор часто выполняемых действий, которые не представляют угрозу безопасности при выполнении от пользователя, но при этом требуют рут права. Например, те же скрипты из пункта 1 или ручное монтирование флешки. Наверное это можно сделать по-человечески через sudo, но как именно, если команд относительно много и они разнородые я не знаю.
Программа запускается от рута и раз в секунду пытается прочесть строку не более 50 символов из пайпа, доступного для пользователя. Дальше, если прочитанное слово найдено в конфиге, то выполняется соответствующая ему команда через nohup, результат отправляется в другой пайп.
3) Скрипт для сборки iso debian через debootstrap. Скрипт установки. Все взято из внешних источников, собрано вместе и подогнанно под себя. Нужно допиливать, хотя уже работает.
4) Обертка для wget, автоматически проверяющая статус сети и выдающая ошибки в нужном мне формате. Так же она умеет косить под браузер для обхода блокировки на некоторых сайтах (порнхаб блокирует ботов по отсутствию подстроки в хедере).
5) Бот для скачивания картинок из галерей. Задача слишком примитивна, чтобы заморачиваться изучением сложного ПО для автоматизации.
6) Мелкие скрипты для работы с файлами и тому подобное.
Есть несколько серьезных проектов тоже в области повседневной работы, но не уверен, что когда-нибудь их закончу.

>> No.159646  
> 2) Небольшая программа на си для запуска команд от рута без ввода пароля. В системе всегда есть набор часто выполняемых действий, которые не представляют угрозу безопасности при выполнении от пользователя, но при этом требуют рут права. Например, те же скрипты из пункта 1 или ручное монтирование флешки. Наверное это можно сделать по-человечески через sudo, но как именно, если команд относительно много и они разнородые я не знаю.

Программа запускается от рута и раз в секунду пытается прочесть строку не более 50 символов из пайпа, доступного для пользователя. Дальше, если прочитанное слово найдено в конфиге, то выполняется соответствующая ему команда через nohup, результат отправляется в другой пайп.

Обязательно переделай через sudo. Судя по "раз в секунду" вместо блокировки, код у тебя плохой. Монтирование пользователю вообще возможно стоит разрешить через fstab.

Как минимум можно разрешить через sudo запускать именно эту твою команду-обёртку и снять с нее suid-бит.

>> No.159653  
File: 1544203209984.jpg -(52450 B, 640x479) Thumbnail displayed, click image for full size.
52450

>>159642
Для этого придумали кнопку "фаворите". Но да, рано или поздно одно и тоже надоедает, даже если его сотни, и приходится лопатить.

>> No.159671  

>>159586
А нахрена тогда компьютеры покупать? Да еще и такие дорогие.

>> No.159673  

>>159653
Оно сильно от настроения фаворите, к тому же, всё время нужно новое

>> No.159682  

>>159293
На работе да, дома только всякие одноразовые одностросники, в стиле "распаковать 100500 зип-архивов с торрента", или "найти и пофиксить все жипеги которые на самом деле пнг".

>> No.159718  

Постоянно дополняю свои макросы и конфиги для имакса, алиасы для командной оболочки. Потихоньку пилю полнотекстовый поиск по дампу нескольких цифровых библиотек.

>> No.159729  

Стараюсь не писать никаких скриптов и ничего не настраивать. Считаю, что если что-то нужно настраивать после установки, то это баг. Поддерживаю концепцию zeroconf: https://sqlite.org/zeroconf.html

>> No.159743  

>>159671
Смотреть котиков, читать рецепты котиков, изредка пописывать квартальный отчёт.
Ну и траекторию баллистических ракет считать, но этих пользователей ничтожно мало.

>> No.159744  
> если что-то нужно настраивать после установки

Ага, пусть там будут дефолтные пароли от админа, ноль безопасности из-за ненастроенных привилегий и неизвестно какие базы данных. Зато ничего не настраиваешь.

>> No.159747  

>>159744
Он айпадная потреблядь, успокойся.
Таким действительно лучше никуда не лезть.

>> No.159748  

>>159744
Хотя в целом - замечательная идея, только не для этого мира.

>> No.160308  
File: 1546127287091.jpg -(31592 B, 720x406) Thumbnail displayed, click image for full size.
31592

>>159645

> 3) Скрипт для сборки iso debian через debootstrap. Скрипт установки. Все взято из внешних источников, собрано вместе и подогнанно под себя. Нужно допиливать, хотя уже работает.

Покажешь?

>> No.160313  

Нет, я скрипт-кидди и использую уже готовые чужие скрипты. Кто-нибудь здесь пишет прикладные программы без образования программиста или не обучаясь на оного?

>> No.160314  

>>160313

> Кто-нибудь здесь пишет прикладные программы без образования программиста или не обучаясь на оного?

Если считать скрипт прикладной программой, то да, пишу.

>> No.160406  

>>160313
Образование программиста переоценено

>> No.160576  

>>160313
Скрипты, программы, подпрограммы, надпрограммы...
Зачем я это делаю — не знаю. Но искренне надеюсь, что изо всего этого не вырастет очередной TempleOS

>> No.160732  

>>160313
А я на работе задаюсь другим вопросом: кто-нибудь здесь пишет прикладные программы, имея образование программиста или обучаясь на оного?

>> No.160740  

>>159293
Нет задач. И вообще жизнь меня затупила до крайности, даже под страхом смерти вряд ли напишу чтото сложнее автохоткея. c:sad

>> No.160741  

>>159293
Я не понимаю, как можно не писать скрипты под свои нужды. Под каждую нужду софт искать? Ну вот мне надо скачивать обновления манги, причем с разных сайтов. Мне что, под каждый сайт какое-то ПРИЛОЖЕНИЕ искать? Или вот у вуза было ебанутое расписание, нужно специальный будильник, который умеет работать по двум неделям. Где я его найду? Я даже кейворды не знаю какие вводить, чтобы такое найти. А переименовать файлы в проекте, параллельно поправив инклюды, как? Скачивать какой-нибудь плагин для Total Commander из недр Wayback Machine? Или вот я работал с индусом, который обожал гробить базу клиента. Бывало, по несколько раз на дню. Сначала я честно разбирался, что он там накосячил, и сам отвечал на его письма, но меня это быстро заебало, и я решил поставить автоответчик, который тупо откатывал базу и слал ему стандартный ответ. Вот где такой автоответчик скачивать?

И таких вот мелких задач - сотни. И с каждым днем появляется все больше, потому что все девелоперы уходят в веб и облака. Что мне делать, кроме как не писать скрипты самому?

>> No.160744  

>>160741

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

Это не про тебя случайно? https://bash.im/quote/436725

>> No.160764  
File: 1547631096821.jpg -(77218 B, 604x426) Thumbnail displayed, click image for full size.
77218

bashrc — тоже скрипт.
Поэтому, дорогой Новерь, смотри, какую хуиту я нагородил.

Для удобства обезжучивания, перед командой присвоил переменную PS4:

$ PS4='\e[35m${LINENO}\e[m ' bash -x script.sh

Чтобы выводила фиолетовые номера строк выполняемого скрипта.
А выводится вот, что:

[35m14 echo 'Test?'

Здесь 14-я строка. Вот, без ANSI-кода единица появляется дважды:

114 echo 'Test?'

И если сделать так:

$ PS4='Line ${LINENO} ' bash -x script.sh

Получается вот так:

LLine 14 echo 'Test?'

Первый символ повторяется и всё портит.

PS1 вроде не запортачил.

TTY=$(tty)
PS1='\[\e[1;30m\] ${TTY:5}\[\e[m\] ${debian_chroot:+($debian_chroot)}\[\e[1;34m\]\W\[\e[m\] $ '
>> No.160765  

>>160764
Посмотри на PS1 внимательно. Там ANSI escape sequence обёрнуты в "\[...\]".

>> No.160766  

>>160765
Пробовал, без разницы. Час промаялся, читал и гуглил, и так и этак.
И присваивал PS1 обычный '$ ', когда грешил на промпт, но дело не в нём.
Глаза сломал уже.

$ PS4='\[\033[0;35m\] ${LINENO} \[\033[0m\] ' bash -x script.sh 
[0;35m 14 echo 'Test?'
>> No.160767  

>>160766
У меня твоя строка выводит фиолетовый цвет. Может дело в терминале или версии bash?

>> No.160777  

>>160766
export PS1='\[\033[0;35m\] ${LINENO} \[\033[0m\] '
Теперь у меня есть фиолетовые номера строк. Очень ня.

>> No.160778  
File: 1547659353926.png -(93956 B, 940x468) Thumbnail displayed, click image for full size.
93956

>>160777
Ня. С нулями тоже кавайи, дес.

PS1='\[\e[0;35m\] $(printf "%03d" $LINENO) \[\e[0m\] '

>>160767
rxvt-unicode:amd64 9.22-1+b1
sakura:amd64 3.4.0-3
bash:amd64 4.4.18-2
bash:amd64 4.4-5
Проверял в разных комбинациях — везде одинаково.
В одном и том же месте, в одном и том же скрипте; с другими первый символ не повторяется.

Стесняться некого, так что спрошу прямо: где у этой строки не так?

>> No.160779  

Или без нуля, с заполнением пробелами.

$(printf "%3d" $LINENO)
>> No.160780  
File: 1547662092311.png -(183580 B, 564x340) Thumbnail displayed, click image for full size.
183580

>>160778
Судя по твоему скрину у тебя еще может быть проблема в PS1, попробуй там что-нибудь совсем простое поставить. Вот мой скрин для сравнения.

>> No.160781  
File: 1547666444962.png -(88099 B, 692x436) Thumbnail displayed, click image for full size.
88099
PS1='$ '

Злополучная конструкция:

if ! [ -x "$(command -v ffmpeg)" ];
then
echo 'FFmpeg is not installed.' 1>&2
exit 1

fi

Вынесенная в отдельный файл, эта проверка делает то же самое. Можешь опробовать. Спасибо за участие, кстати.
Даже цвета можно убрать, оставив только

PS4='$LINENO '

, первый символ всё равно повторяется.

Если бы не плохой английский (и сильное желание спать), уже написал бы в Debian mailing list или на форум.

>> No.160783  

>>160781
Похоже на баг в bash. Мне удалось сократить тестовый скрипт до $(true). Обойти же этот баг можно, воткнув первым символом в PS4 что-нибудь непечатное, например https://en.wikipedia.org/wiki/Word_joiner



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]