06.23.08

then the bash is wrong

Posted in linux at 9:14 pm by viliar

В процессе неспешного скриптования наткнулся на неприятную особенность баша. И в очередной раз, чертыхаясь, пожалел о том, что не стал писать программу на perl. Не то, чтобы я знаю его очень хорошо, но по-крайней мере таких ляпов там бы не было.

Дано:

# include current rbl config
if [ -f ${rblconf} ]; then
. ${rblconf}
else
echo “fail to read ${rblconf} file!”
exit 1
fi

Результат:

$ ./reposync chkr lupdate
./reposync: line 42: .: filename argument required
.: usage: . filename [arguments]

Сначала не мог понять, где же мой косяк. Выяснилось, что в процессе редактирования я случайно удалил строчку с определением переменной $rblconf. Почему-то bash считает нужным при файловых проверках на несуществующих переменных возвращать истину, а не ложь. Бред. Так что мы имеем вот такое:

$ if [ -f $fdxxdxafdsfdl ]; then echo “stupid, but ok”; else echo “variable unset or file does no exist”;fi
stupid, but ok

Самое ужасное, что это скорее всего не бага, а фича. Нужно будет спросить у знакомого гуру в программировании, “что здесь собственно происходит?”

06.02.08

Not a news.

Posted in opensource at 9:47 am by viliar

Оказывается gnu сейчас бОльшей частью использует git. Не cvs/svn, а  именно git. Не смотря на двойственное отношение к Linus’у и его детищу :-)

http://git.savannah.gnu.org/gitweb/

http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v6.12;pg=1

14 queries. 0.237 seconds