Bash, он же возрождённый shell, является по прежнему, одним из самых популярных командных процессоров и интерпретаторов сценариев. Как бы его ненавидели и не пытались заменить, всё равно он присутствует вокруг нас и никуда не собирается исчезать. Если вам приходится писать bash скрипты или вы только планируете этим заняться, данная статья написана для вас.
Рубрика «bash scripting»
Подготовка эффективной среды для написания bash сценариев
2021-10-24 в 0:13, admin, рубрики: bash, bash scripting, bash-скрипт, bashdb, debug, devops, shell, shell scripting, shell-скрипт, vscode, Серверное администрирование, системное администрированиеОсновы Bash-скриптинга для непрограммистов. Часть 2
2021-01-30 в 15:59, admin, рубрики: bash, bash scripting, Debian, linux, shells, ssh, Ubuntu, UNIX, virtualboxВ первой части статьи мы рассмотрели командные оболочки, профили, синонимы и первые команды. Под спойлером я также рассказал, как развернуть тестовую виртуальную машину.
В этой части речь пойдет о файлах скриптов, их параметрах и правах доступа. Также я расскажу про операторы условного выполнения, выбора и циклы.
Скрипты
Для выполнения нескольких команд одним вызовом удобно использовать скрипты. Скрипт – это текстовый файл, содержащий команды для shell. Это могут быть как внутренние команды shell, так и вызовы внешних исполняемых файлов.
Масштабирование CI-CD монорепозитория
2020-07-19 в 13:49, admin, рубрики: bamboo, bash, bash scripting, ci/cd, continuous integration, devops, horizontal scaling, lerna, monorepo, scalability, shell, shell scripting, yarn workspaces
Дано
- Монорепозиторий на базе Lerna и Yarn workspaces.
- Десяток приложений, и десятки общих пакетов на TypeScript, Angular, NodeJS.
- Высокое покрытие тестами самых разных мастей (модульные, интеграционные, e2e).
- и Atlassian Bamboo CI/CD.
Задача
Ускорить имеющиеся пайплайны в 2 раза (до, хотя бы, получаса). Попутно повысив стабильность до 90%.
Забегая вперед, скажу что требуемые показатели были достигнуты.
Предлагаю вашему вниманию перевод статьи Митча Фрейзера (Mitch Frazier) "Bash Arrays" с сайта linuxjournal.com.
Если вы используете «стандартную» оболочку *NIX-системы, возможно, вы не знакомы с такой полезной особенностью bash как массивы. Хотя массивы в bash не так круты, как в P-языках (Perl, Python и PHP) и других языках программирования, они часто бывают полезны.
Bash-массивы имеют только численные индексы, но они не обязательны к использованию, то есть вы не должны определять значения всех индексов в явном виде. Массив целиком может быть определен путем заключения записей в круглые скобки:
arr=(Hello World)
Отдельные записи могут быть определены с помощью знакомого всем синтаксиса (от Бейсика (да простит меня Дейкстра — прим. переводчика) до Фортрана):
arr[0]=Hello
arr[1]=World
Можно ли писать скрипты на C++?
2020-02-19 в 6:48, admin, рубрики: bash scripting, c++, Настройка Linux, ОболочкиНедавно пришлось мне опять/снова погрузиться в чудесный мир программирования Linux скриптов. В принципе, дело не очень хитрое, но поскольку мне попадаются такие задачи не часто, то каждый раз изучаю заново. Знаю точно, что завтра многое забуду и через месяц опять буду гуглить, как сделать то или это. Проблема еще оказывается в том, что зачастую не пишешь скрипт заново, а модифицируешь существующий, уже написанный кем-то. А он может быть не bash, а sh или еще что-то… Различия в синтаксисе есть, что работает в sh по идее должно работать и в bash, но не всегда наоборот. А если там dash или ash? Я не знаю… Различия в этих скриптовых языках все же есть, и они сбивают с толка. Ну и конечно, лично для меня, вишенка на торте, когда скрипт вызывает какой нибудь sed или awk и там такие параметры в командной строке, что смотришь на них и диву даешься. Понятно, что это все зависит от квалификации программиста, но вот у меня не все в голове помещается. И вот сейчас мое терпение лопнуло и я подумал, что отныне хочу попробовать писать скрипты на c++…
Я понимаю, что для true системного администратора моя мысль может показаться крамольной. Но почему бы и нет?Читать полностью »
SwayWM — сам себе UnixPorn
2020-01-17 в 13:35, admin, рубрики: bash scripting, linux, sway, Wayland, Настройка LinuxВсем привет. В этой статье я опишу свой опыт настройки и использования sway — тайлингового оконного менеджера для Linux.Читать полностью »
Как мы восстанавливали поврежденный .wav файл
2018-12-14 в 13:46, admin, рубрики: Audacity, bash scripting, hex-коды, wav, звук, СофтБыл интересный опыт, когда с другом восстанавливали .wav файл. Я решил описать наш мучительный процесс, вдруг кому-то пригодится.
Предыстория
Бывают грустные истории, когда диктофон зависает/или выдает ошибку при сохранении файла. Следовательно, при попытке открыть поврежденный файл мы получаем ошибки, типа: не удалось декодировать формат, неверный формат или программа не распознала формат файла. Читать полностью »
Разработка скриптов-обёрток с помощью инструмента Sparrow
2017-07-15 в 19:45, admin, рубрики: bash, bash scripting, bash-скрипт, devops (*nix), perl, perl6, pip, python, автоматизация, Разработка под LinuxДоброе время суток! В данном посте я хочу рассказать как с помощью инструмента Sparrow лёгко и просто писать собственные обёртки к существующим скриптам и утилитам, а так же зачем вам это может понадобиться.
Запуск Java классов и JAR-ов не по учебнику
2017-07-11 в 16:02, admin, рубрики: bash scripting, java, linux, Ubuntu, Разработка под LinuxМеня давно занимала мысль как в Linux-е запускать программы на Java без вспомогательных Bash скриптов. Я не видел приемлемого решения, если не считать способ «bash script payload», когда в конец скрипта помещается бинарный файл.
Но на прошлой неделе случайно наткнулся на модуль ядра binfmt_misc, с помощью которого можно перехватить исполнение файла по его magic number. Для этого через update-binfmts добавляется собственный обработчик для получения имени исполняемого файла и аргументов пользователя.
Читать полностью »
Настройка автоматического разворачивания независимых development окружений на одной машине (Docker, Ansible, TeamCity)
2017-03-16 в 14:34, admin, рубрики: Ansible, bash scripting, devops, docker, teamcityВ этом посте я расскажу как мы, в TheQuestion, осуществили нашу давнюю мечту — отдельные, автоматически разворачиваемые development среды для каждой отдельной задачи.