Обновить
4K+

Оболочки *

Шелл и компания

0,8
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Частые ошибки программирования на Bash (продолжение)

Время на прочтение6 мин
Охват и читатели41K
Продолжаю знакомить сообщество с переводом Bash Pitfalls.
Часть первая.

11. cat file | sed s/foo/bar/ > file


Нельзя читать из файла и писать в него в одном и том же конвейере. В зависимости от того, как построен конвейер, файл может обнулиться (или оказаться усечённым до размера, равному объёму буфера, выделяемого операционной системой для конвейера), или неограниченно увеличиваться до тех пор, пока он не займёт всё доступное пространство на диске, или не достигнет ограничения на размер файла, заданного операционной системой или квотой, и т.д.
Что же делать?

Частые ошибки программирования на Bash

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели104K
Качество скриптов, используемых для автоматизации и оптимизации работы системы, является залогом ее стабильности и долголетия, а также сохраняет время и нервы администратора этой системы. Несмотря на кажущуюся примитивность bash как языка программирования, он полон подводных камней и хитрых течений, способных значительно подпортить настроение как разработчику, так и администратору.

Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)

Данный текст является вольным переводом вики-страницы «Bash pitfalls» по состоянию на 13 декабря 2008 года. В силу викиобразности исходника, этот перевод может отличаться от оригинала. Поскольку объем текста слишком велик для публикации целиком, он будет публиковаться частями.

Поехали!

Анонс блога «Оболочки»

Время на прочтение1 мин
Охват и читатели966
На Хабре частенько появляются посты, которым явно неуютно в рамках блогов, куда их поместили авторы. Большинство постов на темы, связанные с bash, живёт в «Linux для всех», хотя bash вполне может работать и в FreeBSD, и в Mac OS X, и даже под Windows в окружении cygwin. В свою очередь, множество Linux-пользователей работает в традиционной для *BSD оболочке csh. То же самое можно сказать и про zsh, и fish, и про другие популярные и не очень шеллы.

Поэтому, чтобы избежать путаницы между операционными системами и оболочками и при этом никого не обидеть, создан тематический блог о командных оболочках: habr.ru/blogs/shells. Предлагаю помещать сюда статьи, касающиеся использования командных интерпретаторов как в роли языков программирования, так и в роли пользовательского окружения.

Приветствуются статьи об оболочках, использующихся в Unix-like системах, но, думаю, и про возможности cmd.exe многим было бы интересно узнать.
12 ...
7