URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 47017
[ Назад ]

Исходное сообщение
"Частые ошибки программирования на Bash"

Отправлено opennews , 20-Дек-08 21:31 
"Частые ошибки программирования на Bash" (часть 1 (http://bappoy.pp.ru/2008/12/13/bash-pitfalls-part01.html), часть 2 (http://bappoy.pp.ru/2008/12/18/bash-pitfalls-part02.html)) - перевод статьи Bash Pitfalls (http://wooledge.org:8000/BashPitfalls), в которой описаны некоторые подводные камни и ошибки программистов при составлении Bash скриптов.

URL: http://bappoy.pp.ru/2008/12/18/bash-pitfalls-part02.html
Новость: http://www.opennet.me/opennews/art.shtml?num=19486


Содержание

Сообщения в этом обсуждении
"Частые ошибки программирования на Bash"
Отправлено pavlinux , 20-Дек-08 21:31 
cat /etc/passwd | ( a(){count=0;
                           while read line ;
                                do
                                  ((count++));
                          done;
                         echo "total number of lines: $count";
                         return $count;}; a;); count=$?; echo $count;

Опа! :)


"Частые ошибки программирования на Bash"
Отправлено anonymous , 20-Дек-08 22:54 
И к чему это "опа" относилось? К "{count=0;"?

"Частые ошибки программирования на Bash"
Отправлено pavlinux , 20-Дек-08 23:59 
# cat /etc/passwd | ( a(){ while read line; do ((count++)); done; echo "total number of lines: $count"; return $count;}; a;); count=$?;echo $count;


"Частые ошибки программирования на Bash"
Отправлено Andrey Mitrofanov , 21-Дек-08 17:59 
>И к чему это "опа" относилось? К "{count=0;"?

$ ((count++)); echo $count
1
$ ((count++)); echo $count
2
$ ((count++)); echo $count
3
$ ((count++)); echo $count
4
$ yes|head -257 | ( a(){ while read line; do ((count++)); done; echo "total number of lines: $count"; return $count;}; a;); count=$?;echo $count;
total number of lines: 261
5
$ yes|head -257 |wc -l
257
$ _

Неужели к недоступности wc на уних-пазих-пла-атформе? :))


"Частые ошибки программирования на Bash"
Отправлено anonymous_peer , 17-Июл-09 02:42 
У возвращаемого программой значения берутся только 8 младших битов. Так что здесь всё правильно: 261-256=5.

А count внутри ( ) установлен изначально уже не в 0, а в 4.


"Частые ошибки программирования на Bash"
Отправлено Guest , 21-Дек-08 00:05 
Лучше бы написали про bash'измы и необходимость их избегать, в том числе [[ и ==

"Частые ошибки программирования на Bash"
Отправлено anonymous , 21-Дек-08 00:50 
Sorry, программирование на bash - конечно круто, но нужно помнить о кроссплатформенности! многие вещи в обычном sh не работают!

"ошибки на Bash? непереносимые? непорядочек?"
Отправлено Andrey Mitrofanov , 21-Дек-08 18:09 
Проблемы индейцев?

"""Поборники переносимости http:/openforum/vsluhforumID9/7769.html#9 допиливают пиломатериал напильником в сторонке. Без перекуров. :-P"""

И вообще, какие проблемы к переносимости _ошибок_ програмировния, ась?!! 8-)