- 1
OWNER=`ls -l $i | awk '{ print $3 }'`
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−140
OWNER=`ls -l $i | awk '{ print $3 }'`
initscripts-8.45.30-2.el5, не хрен собачий...
Вполне себе unix way. Поведение ls стандартизованно, значение третьей колонки и будет юзверь-владелец.
Конечно, через stat было бы красивее -- но я не уверен что он есть в posix.
Вообще в мире шелл-программирования именно так и делают, как бы смешно это ни выглядело.
А как бы Вы сделали?
Я бы сделал так:
OWNER="$(stat -c %U "$i")"
Короче, быстрее и гораздо читабельнее.
Это плохо. Когда я вижу шебанг "/bin/bash" мне всегда смешно.
>>Короче, быстрее и гораздо читабельнее.
ну вот я тоже про stat подумал
Мне кажется что если не хватает обычного sh/sed/awk, то лучше уж писать на перле.
Вы только представьте какой-нить OpenBSD , на который ставится баш только ради пары скриптов. А перл есть на 80% юниксов, мне кажется)
>>А вот когда под шебангом "/bin/sh" прячется башевский скрипт, это пиздец.
Да-да, кроме линуксов -- других униксов в мире нет)
>> И людишки ведь искренне верят, что "sh это такой урезанный bash".
Или что sh это вообще symbolic link на bash везде. )))
я как то раз по проблемам встроеной системы с авторами инит скриптов общался по почте.
суровые мужики. очень суровые.
если так написали - значит так надо.
> OWNER="$(stat -c %U "$i")"
ярый башизм. с синтаксическими ошибками. то что стоит сверху так же будет работать под busybox'ом например.
и stat не есть часть POSIX.