From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Injected-Via-Gmane: http://gmane.org/ To: community@lists.altlinux.org From: Artem Zolochevskiy Date: Sun, 15 Oct 2006 08:53:03 +0300 Message-ID: References: <45316999.9080600@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8Bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: ppp132-89.tis-dialog.ru User-Agent: KNode/0.10.4 Sender: news Subject: Re: [Comm] sh - bash X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Oct 2006 05:55:14 -0000 Archived-At: List-Archive: List-Post: Pavel Usischev wrote: >> Собственно вопрос относительно написания скриптов >> Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях итп) - если >> этот sh такой старый и неумека? > > Как раз для переносимости скрипта. В ALT /bin/sh -- это особый вариант > bash, в других системах это вполне может быть другой шелл, а bash вообще > может отсутствовать. Так вот и я так думал, а получается, что нет. Ибо в альтовских скриптах (благодаря тому, что в альт sh это тот же bash) повсеместно используются фичи, кот в "оригинальном" sh не прокатят. Получается о совместимости тут речи нет. >> Ну и, если можно, пример можете привести где употребление >> #!/bin/sh или #!/bin/bash может сказаться на работоспособности скрипта. >> Т.е. какая такая фича может быть в скрипте, что при использовании >> #!/bin/sh он работать не будет. > > Об отличиях bash от изначального Bourne Shell можно почитать, дав команду: > > info bash 'Major Differences From The Bourne Shell' читали. собственно вопрос и возник от того что этих Differences не наблюдаю (ну вернее частично) > > Однако, насколько я понял, в ALT /bin/sh будет вести себя так же, как > /bin/bash (возможно, я просто как-то не так проверял). > вот здесь и засада. конкретный пример: bash: [artem@alt ~]$ A=5 [artem@alt ~]$ B=6 [artem@alt ~]$ C=$(($A+$B)) [artem@alt ~]$ echo $C 11 [artem@alt ~]$ альтовский sh: sh-3.1$ A=5 sh-3.1$ B=6 sh-3.1$ C=$(($A+$B)) sh-3.1$ echo $C 11 sh-3.1$ а по идее в sh это не должно прокатывать heirloom-sh: $ A=5 $ B=6 $ C=$(($A+$B)) syntax error: `C=$' unexpected $ Вот и получается что использование #!/bin/sh в альте явно не для совместимости. -- Artem Zolochevskiy Kaliningrad, Russia JID: az@jabber.org