Идеальный скрипт на bash | Bash ideal script

Поделиться
HTML-код
  • Опубликовано: 25 авг 2024
  • Телеграмм-канал про python и не только t.me/+b7-UPCwN...
    Репозиторий с кодом скрипта gitlab.com/ane...
    Опрос stackoverflow 2022 survey.stackov... , вкладка Professional Developers. Исторический экскурс в популярность гита в разное время в телеграмм t.me/vestnik_i...
    Мой bash конфиг gitlab.com/ane... . Внимание функции set_prompt для формирования приглашения командной строки и переменной Last_Command, где сохраняется результат вычисления последней команды.
    Хорошее видео про if в bash: • Never say "If" writing...
    Спецсимволы в bash unix.stackexch...
    Подробнее о разнице ; && || как разделителях unix.stackexch...
    PS: починил звук, теперь пишу на Recording Tools MCU-01 вместо тапка

Комментарии • 38

  • @user-ud4ce2cp5c
    @user-ud4ce2cp5c 2 года назад +14

    Просто шикарно. Никогда информация не заходит в голову так же хорошо, как через практику. Спасибо за видео, жду следующих выпусков!

    • @MrAnetto
      @MrAnetto  2 года назад +4

      Тут важно сесть и самому такую работу проделать над своим скриптом. Потому что на практике это сложнее, чем кажется

  • @zoompartyru
    @zoompartyru 5 месяцев назад +2

    Фантастически понятно. Огромное спасибо !

    • @MrAnetto
      @MrAnetto  5 месяцев назад +2

      Очень рад, что вам понравилось

  • @rishardsaifer1734
    @rishardsaifer1734 5 месяцев назад +4

    Кто ты, воин?! 😮😮
    Где самореклама или хотя бы приветствие/прощание? За 20 минут было ли хотя бы одно лишнее слово? Как добиться такого же уровня конструктивности и лаконичности?! Ты вообще человек?)

    • @MrAnetto
      @MrAnetto  5 месяцев назад

      Привет тебе, и спасибо за добрые слова :)

  • @shtacson
    @shtacson 22 дня назад +1

    Когда используется [[]] можно не брать переменные в кавычки. И ещё в этом случае можно использовать вместо -ne. Но это уже не posix, и если нужна обратная совместимость, лучше не использовать. В общем, я к чему. Тут либо на [] поменять можно, либо "" убрать

    • @MrAnetto
      @MrAnetto  22 дня назад

      Прямо сейчас в процессе записи видео, где поясняю, почему надо [[ и не надо [, и ещё почему лучше -lt, чем <
      А кавычки в баше лучше всегда пихать, даже когда они могут быть не нужны

    • @shtacson
      @shtacson 21 день назад

      @@MrAnetto интересно, ждём.

  • @lafireta578
    @lafireta578 2 года назад +6

    с улучшением качества звука и фиксом мерцаний сверху стало заметно приятнее, поставил три лайка какгрица

    • @MrAnetto
      @MrAnetto  2 года назад +3

      Что ещё интересного рассмотреть? Принимаю заявки

    • @dull7084
      @dull7084 2 года назад +2

      @@MrAnetto магические методы в python

    • @Slavasil
      @Slavasil 29 дней назад

      @@dull7084 и метатаблицы в lua)

    • @hypnotized4514
      @hypnotized4514 9 дней назад +1

      Странно это читать если учитывать тот факт, что это самое первое видео на канале

  • @kirillkirill2986
    @kirillkirill2986 Год назад +2

    Для проверки правильнее ведь использовать флаг -d, который проверяет только на наличие папки с таким именем. В остальном видео супер)

    • @MrAnetto
      @MrAnetto  Год назад +2

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

  • @kiselkisel3463
    @kiselkisel3463 3 месяца назад +2

    спасибо, как раз для такой обезьяны как я

  • @nicookasi7908
    @nicookasi7908 11 месяцев назад +2

    привет. У меня к вам одна просьба, если можно?

    • @MrAnetto
      @MrAnetto  11 месяцев назад

      ?

    • @VirtusTex
      @VirtusTex 2 месяца назад

      Видимо это и была просьба)

  • @ukr-pig
    @ukr-pig 9 месяцев назад +1

    Привет.Можешь помочь со скриптом.Я пытаюсь написать скрипт на bash или perl который шифрует текстовый файл (хотя бы просто ксорит содержимое файла) и не получается.Perl для этого больше приспособлен но тоже не получается - всё время спотыкаюсь на нечитаемых символах

    \b и так далее.В итоге у меня не получилось а было очень нужно вы итоге взял и быстренько написал это на C но часто возвращаюсь к этому скрипту и всё равно не выходит.Смысл такой: в терминале запускаем прогу (скрипт) с аргументом например 75 (число) и скрипт должен сделать xor со всеми байтами из файла.Должно получиться например файл до шифрования был 395 байт и после он должен быть тоже 395 но содержимое прочитать не возможно

    • @MrAnetto
      @MrAnetto  9 месяцев назад +1

      Привет! В примере 75 - это число, с которым надо xor сделать?
      В баш так себе с бинарными файлами. Но посмотрю, что можно сделать

    • @ukr-pig
      @ukr-pig 8 месяцев назад +1

      @@MrAnetto да 75 это число с которым нужно делать xor

  • @RU-jh8qr
    @RU-jh8qr 2 месяца назад +1

    🤔mkdir {1..10}

    • @MrAnetto
      @MrAnetto  2 месяца назад +1

      Про это говорится на 5:25. Плюс за ещё более интересными практиками загляните в наш бесплатный курс на степике cli-for-dev, командная строка для разработчиков

  • @АлексКорякин
    @АлексКорякин Месяц назад +1

    Для тех кто не знает, но использование подобных операторов (предназначенных в большей мере строковым сравнениям) как -lt и ему подобных не является оптимизированным решением особенно для циклов. Взяв например разницу в переменную total от переменной start и end в конструкции которых будет содержатся $(date +%s%N), зациклим тело и сравним
    : > test
    i=1
    while (( $i < 1000 )); do
    start=$(date +%s%N)
    if (( 1 < 3 )); then echo l; fi
    end=$(date +%s%N)
    total=$(( $end - $start ))
    echo $total >> test
    i=$(( $i + 1 ))
    done
    awk 'NR == 1 || $1 < min {min = $1} END {print min}' test
    изменив тело условия в цикле на упрощенный оператор который используется в основном для строковых сравнений то получим ощутимую разницу в наносекундах. У меня было с числовым минимальная разница 585841 и со строковым 661532 наносекунд. К сожалению скрипт не идеален. Ищу тех кто знает больше(
    Ну или например традиционный scp и cat используя ssh, преимущественно быстрее выполняет cat + ssh

    • @MrAnetto
      @MrAnetto  Месяц назад

      600 000 наносекунд == 0.0006 секунды. Представленная вами разница в пределах погрешности измерений. Более того, если вам важны 10% скорости, то, возможно, bash не подходящий инструмент) собственно, однострочник типа mkdir {1..30} будет быстрее if. Но в видео же речь про поддерживаемость кода, а не скорость выполнения. Повторяюсь, возьмите Си и будет в сотни раз быстрее

    • @АлексКорякин
      @АлексКорякин Месяц назад +1

      @@MrAnetto Несомненно разница в скорости не столь велика, я лишь подчеркнул почему стоит делать так, а не иначе, ну и касательно "к сожалению скрипт не идеален" это не оскорбление, а отсылка "всем не угодишь", поэтому идеальных скриптов нет, ведь найдется тот кому не понравится. Если у вас есть источники информации по нетрадиционным методам работы bash, я бы с радостью черпнул информацию, так как я занимаюсь сборками Linux и внедряю в организации. Касательно Си, конечно хороший выбор в скорости выполнения необходимых задач, можно было бы спуститься ниже, но тем не менее нужен многолетний опыт для того чтобы не допустить уязвимость в собственном решении, к сожалению таковой опыт у меня отсутствует (

    • @MrAnetto
      @MrAnetto  Месяц назад

      ​@АлексКорякин , всегда рад дискуссии. Если будет время, запишу видео про корректный замер времени выполнения, как я его вижу.
      Что под нетрадиционными способами имеете в виду? У меня есть базовый курс по введению в Линукс для разработчиков stepik.org/course/169291/promo
      Там основы, на мой вкус, наиболее полезные для старта

  • @MrChelovek68
    @MrChelovek68 2 месяца назад

    писать можно что угодно и сколько угодно без гита) и пишется Без гита. а для хранения строчек кода и используется гит. но видос шикарен

    • @MrAnetto
      @MrAnetto  2 месяца назад +2

      По stackoverflow developer survey 2023, 97% разработчиков используют git. А не пользуются системой контроля версий вообще менее 1.5% разработчиков

    • @MrChelovek68
      @MrChelovek68 2 месяца назад

      @@MrAnetto знаете,мне как то все равно на рейтинги,они аще никакого смысла в отрыве от контекста не имеют. мое сообщение- я могу писать код и для этого мне не нужен гит. мне нужны совсем другие инструменты,IDE например. код и гит- это параллельные технологии. я это имел в виду. а цыфры-это просто набор символов

    • @MrAnetto
      @MrAnetto  2 месяца назад

      ​@@MrChelovek68, а ещё без IDE можно писать код. Но так почти никто не делает, потому что с IDE быстрее, удобнее и эффективнее. Аналогично с git - это инструмент, без которого работать современному разработчику странно. Можно рыть яму руками, а не лопатой. Но зачем?

  • @bmxsgso7484
    @bmxsgso7484 11 месяцев назад +3

    Для большей совместимости, кстати, лучше использовать такой шебанг:
    #!/usr/bin/env bash

    • @MrAnetto
      @MrAnetto  11 месяцев назад

      Только для питона такое встречал, для базовых штук типа bash или sh не видел, чтобы кто-то так делал. В какой ситуации баш не будет по этому пути, при этом env будет?

    • @ukr-pig
      @ukr-pig 9 месяцев назад

      а еще лучше which bash