Комментарии 25
да, действительно полезное чтиво :)
по поводу «if grep foo myfile > /dev/null; then»
у грепа есть ключик -q для этого ;)
т.е. это будет выглядеть так:
if grep -q foo myfile; then
у грепа есть ключик -q для этого ;)
т.е. это будет выглядеть так:
if grep -q foo myfile; then
на удивление хороший материал!
Вообще не стоит пользоваться конструкцией типа RESULT=`cat file.txt`.
Более читабелен и современен такой вариант RESULT=$(cat file.txt)
Более читабелен и современен такой вариант RESULT=$(cat file.txt)
Спасибо за полезный материал!
Жаль, не все, придется читать оригинал :)
Жаль, не все, придется читать оригинал :)
В одной этой статье больше синтаксических правил, чем во всём языке Tcl. ;)
Когда восстановится заряд поблагодарю за полезную информацию. Всегда долго думал над if без квадратных скобок в чужих скриптах.
Когда восстановится заряд поблагодарю за полезную информацию. Всегда долго думал над if без квадратных скобок в чужих скриптах.
НЛО прилетело и опубликовало эту надпись здесь
Вот еще один хороший аргумент в пользу отказа от использования shell-скриптов, по крайней мере в дистрибутивах.
Где?!
В тексте статьи.
Написано же — в bash проблемы со «сложными» именами файлов (насколько я помню, вроде даже какие-то портированные на Винду Линуксовые проги отказываются работать в каталогах с пробелами. типа Program Files). надо потоянно извращаться, чтобы работали любые имена, и разработчик может легко об этом забыть, тем более что у многих в системе не используются имена с пробелами, и это может остаться незамеченным.
Велика вероятность появления скриптов с ошибками (более того, уверен, что они есть, надо просто поискать).
Написано же — в bash проблемы со «сложными» именами файлов (насколько я помню, вроде даже какие-то портированные на Винду Линуксовые проги отказываются работать в каталогах с пробелами. типа Program Files). надо потоянно извращаться, чтобы работали любые имена, и разработчик может легко об этом забыть, тем более что у многих в системе не используются имена с пробелами, и это может остаться незамеченным.
Велика вероятность появления скриптов с ошибками (более того, уверен, что они есть, надо просто поискать).
Видите ли, лично Вас никто не заставляет писать скрипты именно на bash. Не нравится, как он работает под виндой с каталогами, содержащими пробелы в названиях — Бога ради, пользуйте Perl, Python, PowerShell, vbs, command.com или что там еще под нее бывает, вариантов масса. Еще больше вариантов в Unix-подобных системах. И для каждого из них можно составить подобный список типичных ошибок и подводных камней.
Эта статья — для тех, кто хочет быстро написать скрипт для автоматизации работы и быть при этом уверенным в том, что все сделано правильно. Я сам, если возникают проблемы с bash'ем (с кавычками, например, там черт ногу сломит), которые не удаётся решить в течение 10 минут, все бросаю и переписываю на perl.
Эта статья — для тех, кто хочет быстро написать скрипт для автоматизации работы и быть при этом уверенным в том, что все сделано правильно. Я сам, если возникают проблемы с bash'ем (с кавычками, например, там черт ногу сломит), которые не удаётся решить в течение 10 минут, все бросаю и переписываю на perl.
Существует еще такое решение первой проблемы:
find. -name '*.mp3' -print0 | xargs -I{} -0 some_command {}
Использование опции -print0 решает проблему всякой хрени в именах файлов ( пробелов и т.д.) путем использования нуля как символа конца строки. Она действует в связке с опцией -0 команды xargs, которая заставляет xargs считать ноль, а не пробел символом конца входной строки.
find. -name '*.mp3' -print0 | xargs -I{} -0 some_command {}
Использование опции -print0 решает проблему всякой хрени в именах файлов ( пробелов и т.д.) путем использования нуля как символа конца строки. Она действует в связке с опцией -0 команды xargs, которая заставляет xargs считать ноль, а не пробел символом конца входной строки.
Спасибо, очень полезно в связи с предстоящим погружением в эту среду :)
настоящая уличная магия :)
Полезная вещь. Почитаю как следует. Хотя я стараюсь обьходиться питоном, но баш все таки еще нужен
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Частые ошибки программирования на Bash