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

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ย. 2024

ความคิดเห็น • 64

  • @ЗахСвистюр
    @ЗахСвистюр 2 ปีที่แล้ว +16

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

    • @MrAnetto
      @MrAnetto  2 ปีที่แล้ว +5

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

  • @zoompartyru
    @zoompartyru 8 หลายเดือนก่อน +3

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

    • @MrAnetto
      @MrAnetto  8 หลายเดือนก่อน +2

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

  • @user-hj6pj1bw9p
    @user-hj6pj1bw9p หลายเดือนก่อน +1

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

    • @MrAnetto
      @MrAnetto  หลายเดือนก่อน

      Спасибо, стараюсь

  • @lafireta578
    @lafireta578 2 ปีที่แล้ว +6

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

    • @MrAnetto
      @MrAnetto  2 ปีที่แล้ว +3

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

    • @dull7084
      @dull7084 2 ปีที่แล้ว +2

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

    • @Slavasil
      @Slavasil 3 หลายเดือนก่อน

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

    • @hypnotized4514
      @hypnotized4514 2 หลายเดือนก่อน +1

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

  • @nikolaykozlov4888
    @nikolaykozlov4888 หลายเดือนก่อน +1

    Огонь

    • @MrAnetto
      @MrAnetto  หลายเดือนก่อน

      Можете ещё вторую часть посмотреть. А видео forkbomb in docker вообще считаю мега удачным, обязательно попробуйте)

    • @nikolaykozlov4888
      @nikolaykozlov4888 หลายเดือนก่อน +1

      @@MrAnetto завидую вимоводам.

    • @MrAnetto
      @MrAnetto  หลายเดือนก่อน

      ​@@nikolaykozlov4888​попробуйте vimtutor и вливайтесь в наше коммьюнити ;)

  • @rishardsaifer1734
    @rishardsaifer1734 7 หลายเดือนก่อน +9

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

    • @MrAnetto
      @MrAnetto  7 หลายเดือนก่อน

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

  • @kirillkirill2986
    @kirillkirill2986 ปีที่แล้ว +2

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

    • @MrAnetto
      @MrAnetto  ปีที่แล้ว +2

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

  • @shtacson
    @shtacson 3 หลายเดือนก่อน +1

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

    • @MrAnetto
      @MrAnetto  3 หลายเดือนก่อน

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

    • @shtacson
      @shtacson 3 หลายเดือนก่อน

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

  • @МаксимГусельников-р2э
    @МаксимГусельников-р2э หลายเดือนก่อน +1

    Такое ощущения что на видео наложен звук. А так видео очень хорошее, правда git тут лишний

    • @MrAnetto
      @MrAnetto  หลายเดือนก่อน

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

  • @ukr-pig
    @ukr-pig 11 หลายเดือนก่อน +1

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

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

    • @MrAnetto
      @MrAnetto  11 หลายเดือนก่อน +1

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

    • @ukr-pig
      @ukr-pig 11 หลายเดือนก่อน +1

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

  • @kiselkisel3463
    @kiselkisel3463 5 หลายเดือนก่อน +2

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

  • @nicookasi7908
    @nicookasi7908 ปีที่แล้ว +2

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

    • @MrAnetto
      @MrAnetto  ปีที่แล้ว

      ?

    • @VirtusTex
      @VirtusTex 4 หลายเดือนก่อน

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

  • @АлексКорякин
    @АлексКорякин 3 หลายเดือนก่อน +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  3 หลายเดือนก่อน

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

    • @АлексКорякин
      @АлексКорякин 3 หลายเดือนก่อน +1

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

    • @MrAnetto
      @MrAnetto  3 หลายเดือนก่อน

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

  • @zloymish
    @zloymish 2 หลายเดือนก่อน +1

    Это neovim + oh my zsh?

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน +1

      Нет, чистый vim + немного плагинов

    • @zloymish
      @zloymish 2 หลายเดือนก่อน +1

      @@MrAnetto спасиб. А шелл bash или другой?

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน

      ​@@zloymishbash в terminator для деления экрана и настройки цветов

  • @MrChelovek68
    @MrChelovek68 5 หลายเดือนก่อน +1

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

    • @MrAnetto
      @MrAnetto  5 หลายเดือนก่อน +2

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

    • @MrChelovek68
      @MrChelovek68 5 หลายเดือนก่อน +1

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

    • @MrAnetto
      @MrAnetto  5 หลายเดือนก่อน

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

  • @sanadylov8574
    @sanadylov8574 2 หลายเดือนก่อน +1

    Тут не только bash vim и git есть

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน

      Плохо ли? Хорошо!

    • @sanadylov8574
      @sanadylov8574 2 หลายเดือนก่อน +1

      @@MrAnetto да это же круто 🔥🔥🔥

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน +1

      @sanadylov8574 , то ли ещё будет. Уже выложена вторая часть с нюансами if, и сейчас пишу видео про измерение времени выполнения. Колокольчик, все дела - не пропустите ;)

  • @cdb0
    @cdb0 17 วันที่ผ่านมา +1

    На самом деле идеальный скрипт на bash содержит единственный вызов - вызов скрипта на нормальном языке

    • @MrAnetto
      @MrAnetto  16 วันที่ผ่านมา

      Ага, всё сводится к mkdir. Но! usage, пачка проверок, документация - это всё в реальной работе разработчика занимает много времени и кода. При этом, условно, если бизнес-логика (которая сейчас один mkdir) вырастет в 10 раз, то вспомогательный код так сильно не вырастет

  • @RU-jh8qr
    @RU-jh8qr 4 หลายเดือนก่อน +1

    🤔mkdir {1..10}

    • @MrAnetto
      @MrAnetto  4 หลายเดือนก่อน +1

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

  • @bmxsgso7484
    @bmxsgso7484 ปีที่แล้ว +3

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

    • @MrAnetto
      @MrAnetto  ปีที่แล้ว

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

    • @ukr-pig
      @ukr-pig 11 หลายเดือนก่อน

      а еще лучше which bash

  • @shtucer22
    @shtucer22 2 หลายเดือนก่อน

    mkdir dir_name{1..10}
    for i in {1..10}

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน

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

    • @shtucer22
      @shtucer22 2 หลายเดือนก่อน

      @@MrAnetto mkdir или for по секвенции?

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน

      ​@@shtucer22, рассматривается mkdir диапазона и while. Можно и for зафигачить, конечно
      for i in {1..3}; do echo $i; done
      Но концептуально это то же самое

    • @shtucer22
      @shtucer22 2 หลายเดือนก่อน

      @@MrAnetto ну, делать в башке цикл с инкрементом такое себе. Иногда надо, но редко. Бейсиком пахнет :)

    • @MrAnetto
      @MrAnetto  2 หลายเดือนก่อน

      ​@@shtucer22почему? Конструкция {1..10}, безусловно, прикольнее. Но я не уверен в граничных условиях. Для миллиона итераций она как? Миллиарда? А хрен знает