Comments 29
да, действительно полезное чтиво :)
по поводу «if grep foo myfile > /dev/null; then»
у грепа есть ключик -q для этого ;)
т.е. это будет выглядеть так:
if grep -q foo myfile; then
у грепа есть ключик -q для этого ;)
т.е. это будет выглядеть так:
if grep -q foo myfile; then
собственно, об этом написано двумя строчками ниже
странно, я не заметил :(
ну ладно))
ну ладно))
Сайт не выдержал харбраэффект?
Перестал быть актуальным и умер своей смертью. В век AI (даже не клауда) неинтересно публиковать художественные переводы доков и заморачиваться на тонкостях написания баш-скриптов, а соцсети и телеграм-каналы составляют слишком сильную конкуренцию standalone-сайтикам.
Старый отечественный сервис редиректов b23.ru умер, моему необновлявшемуся 10 лет блогу тоже разрешил умереть недавно (про него и писал предыдущий комментарий), ссылку на оригинал исправил во всех публикациях. Проблема была в том, что в 2007 году оригинал был размещен на странном порту 8000, и правила хабра не разрешали публиковать такие ссылки, приходилось извращаться.
на удивление хороший материал!
Вообще не стоит пользоваться конструкцией типа 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 считать ноль, а не пробел символом конца входной строки.
Спасибо, очень полезно в связи с предстоящим погружением в эту среду :)
настоящая уличная магия :)
Полезная вещь. Почитаю как следует. Хотя я стараюсь обьходиться питоном, но баш все таки еще нужен
Sign up to leave a comment.
Частые ошибки программирования на Bash