From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 13 Aug 2010 19:43:21 +0400 From: Alexey Tourbin To: ALT Linux Team development discussions Message-ID: <20100813154321.GA7685@imap.altlinux.org> References: <4C600551.5070308@altlinux.ru> <1281442559.24591.10@ildar.innovations.kz> <20100810122510.GZ10853@wrars-comp.wrarsdomain> <20100812214417.GC15707@wo.int.altlinux.org> <20100813124847.GA17095@mw.office.seiros.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20100813124847.GA17095@mw.office.seiros.ru> Subject: Re: [devel] bash4 X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Aug 2010 15:43:21 -0000 Archived-At: List-Archive: List-Post: On Fri, Aug 13, 2010 at 04:48:47PM +0400, Денис Смирнов wrote: > DVL> Там, наверное, написана большая простыня о том, почему башизмы -- это зло. > DVL> К сожалению, там не написано, почему мечта сделать все shell-скрипты > DVL> portable недостижима, а получающиеся промежуточные результаты > DVL> трудночитаемы. Желающим помечтать могу предложить ознакомиться с > DVL> $ info -f autoconf portable > > Не вижу ничего плохого в башизмах, если скрипт явно использует /bin/bash Также нет ничего плохого, если башизмы используются в скриптах /bin/sh. Особенно если это оправдано эргономически. Потому что скрипты пишут не боги, а кто их пишет им лень. Если башизм экономит время, есть смысл его оставить. К тому же например shell functions появились только в SVR2. То есть такого понятия как "чистый Борн шелл" (восходящий к v7) просто нет. А POSIX/SUSv3 шелл уже впитал в себя башизмы. :) Кстати говорят есть какой-то POSIX:2008. Думаю фирме альт лнукс он не по карману. Есть ещё одна нехорошая засада - у нас /bin/sh и /bin/bash собраны в очень разной конфигурации: у них отличается синтаксис. Я ставил этот вопрос ещё 6 лет назад! $ sh -c 'diff <(echo a) <(echo b)' sh: -c: line 0: syntax error near unexpected token `(' sh: -c: line 0: `diff <(echo a) <(echo b)' $ bash -c 'diff <(echo a) <(echo b)' 1c1 < a --- > b $ То есть проблема не только в башизмах. А проблема в том, что существуют некоторые неопределенные слои башизмов, которые то ли работают, то ли не работают, то ли хер их знает...