* [Comm] sh - bash @ 2006-10-14 21:57 Artem Zolochevskiy 2006-10-14 22:27 ` Alexey Rusakov 2006-10-14 22:50 ` Pavel Usischev 0 siblings, 2 replies; 18+ messages in thread From: Artem Zolochevskiy @ 2006-10-14 21:57 UTC (permalink / raw) To: community hi all Просветите На пакет sh и bash описание одно и то же. Всё, что я когда-то уяснил, это то, что сперва был sh (который чего-то там не умел) а затем стал bash, который сейчас повсеместно и используется и чего-то там умеет, чего не умел sh Собственно вопрос относительно написания скриптов Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях итп) - если этот sh такой старый и неумека? Ну и, если можно, пример можете привести где употребление #!/bin/sh или #!/bin/bash может сказаться на работоспособности скрипта. Т.е. какая такая фича может быть в скрипте, что при использовании #!/bin/sh он работать не будет. -- Artem Zolochevskiy Kaliningrad, Russia JID: az@jabber.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-14 21:57 [Comm] sh - bash Artem Zolochevskiy @ 2006-10-14 22:27 ` Alexey Rusakov 2006-10-15 5:41 ` Artem Zolochevskiy 2006-10-14 22:50 ` Pavel Usischev 1 sibling, 1 reply; 18+ messages in thread From: Alexey Rusakov @ 2006-10-14 22:27 UTC (permalink / raw) To: ALT Linux Community Artem Zolochevskiy пишет: > hi all > > Просветите > > На пакет sh и bash описание одно и то же. > Всё, что я когда-то уяснил, это то, что сперва был sh (который чего-то там > не умел) а затем стал bash, который сейчас повсеместно и используется и > чего-то там умеет, чего не умел sh > > Собственно вопрос относительно написания скриптов > Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях итп) - если этот > sh такой старый и неумека? > > Ну и, если можно, пример можете привести где употребление > #!/bin/sh или #!/bin/bash может сказаться на работоспособности скрипта. > Т.е. какая такая фича может быть в скрипте, что при использовании #!/bin/sh > он работать не будет. > Насколько я понимаю, ситуация такая: вначале был Bourne shell, он же sh. sh есть на всех UNIX-системах, кроме тех, на которых используется Korn shell (ksh, соответственно). На Linux оригинальный sh если и есть, то встречается редко; вместо него используется Bourne Again shell (bash), который умеет в точности воспроизводить поведение предка. В современных системах sh - это тот же bash, но работающий в режиме совместимости с sh. Отличия работы bash в режиме совместимости лучше всего почитать в man bash, основное отличие - в режиме совместимости bash строго следует POSIX (м-да, о том, что это значит, тоже лучше читать в man bash). Ну в общем, я думаю, вы поняли, какое сокращение я избегаю здесь употребить :) -- Alexey "Ktirf" Rusakov ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-14 22:27 ` Alexey Rusakov @ 2006-10-15 5:41 ` Artem Zolochevskiy 2006-10-15 6:13 ` Alexey Rusakov 2006-10-15 8:41 ` Andrey Rahmatullin 0 siblings, 2 replies; 18+ messages in thread From: Artem Zolochevskiy @ 2006-10-15 5:41 UTC (permalink / raw) To: community Alexey Rusakov wrote: > Насколько я понимаю, ситуация такая: вначале был Bourne shell, он же sh. > sh есть на всех UNIX-системах, кроме тех, на которых используется Korn > shell (ksh, соответственно). На Linux оригинальный sh если и есть, то > встречается редко; вместо него используется Bourne Again shell (bash), > который умеет в точности воспроизводить поведение предка. В современных > системах sh - это тот же bash, но работающий в режиме совместимости с sh. > Отличия работы bash в режиме совместимости лучше всего почитать в man > bash, основное отличие - в режиме совместимости bash строго следует > POSIX (м-да, о том, что это значит, тоже лучше читать в man bash). Ну в > общем, я думаю, вы поняли, какое сокращение я избегаю здесь употребить :) Да всё это понятно, доку читали... Я по наивности предполагал, что #!/bin/sh используют для переносимости. Но тогда непонятно отчего в скриптах в системе повсеместно #!/bin/sh если сам этот альтовский sh скорее bash чем оригинальный старый sh, а соответственно это явно _не_ для переносимости. -- Artem Zolochevskiy Kaliningrad, Russia JID: az@jabber.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 5:41 ` Artem Zolochevskiy @ 2006-10-15 6:13 ` Alexey Rusakov 2006-10-15 8:41 ` Andrey Rahmatullin 1 sibling, 0 replies; 18+ messages in thread From: Alexey Rusakov @ 2006-10-15 6:13 UTC (permalink / raw) To: ALT Linux Community Artem Zolochevskiy пишет: > Alexey Rusakov wrote: > > >> Насколько я понимаю, ситуация такая: вначале был Bourne shell, он же sh. >> sh есть на всех UNIX-системах, кроме тех, на которых используется Korn >> shell (ksh, соответственно). На Linux оригинальный sh если и есть, то >> встречается редко; вместо него используется Bourne Again shell (bash), >> который умеет в точности воспроизводить поведение предка. В современных >> системах sh - это тот же bash, но работающий в режиме совместимости с sh. >> Отличия работы bash в режиме совместимости лучше всего почитать в man >> bash, основное отличие - в режиме совместимости bash строго следует >> POSIX (м-да, о том, что это значит, тоже лучше читать в man bash). Ну в >> общем, я думаю, вы поняли, какое сокращение я избегаю здесь употребить :) >> > Да всё это понятно, доку читали... > Я по наивности предполагал, что #!/bin/sh используют для переносимости. Но > тогда непонятно отчего в скриптах в системе повсеместно #!/bin/sh если сам > этот альтовский sh скорее bash чем оригинальный старый sh, а соответственно > это явно _не_ для переносимости. > Хорошо, пример из всё того же man bash: bash, запущенный как sh, не читает свои стартовые скрипты. -- Alexey "Ktirf" Rusakov ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 5:41 ` Artem Zolochevskiy 2006-10-15 6:13 ` Alexey Rusakov @ 2006-10-15 8:41 ` Andrey Rahmatullin 2006-10-15 8:56 ` Artem Zolochevskiy 1 sibling, 1 reply; 18+ messages in thread From: Andrey Rahmatullin @ 2006-10-15 8:41 UTC (permalink / raw) To: community [-- Attachment #1: Type: text/plain, Size: 781 bytes --] On Sun, Oct 15, 2006 at 08:41:41AM +0300, Artem Zolochevskiy wrote: > Я по наивности предполагал, что #!/bin/sh используют для переносимости. Но > тогда непонятно отчего в скриптах в системе повсеместно #!/bin/sh если сам > этот альтовский sh скорее bash чем оригинальный старый sh, а соответственно > это явно _не_ для переносимости. Я не понял, вы предлагаете пофиксить sh или написать во всех скриптах #!/bin/bash? И почему вы так последовательно говорите о "скриптах в системе", "скриптах в альте", вы ж прекрасно понимаете, что скрипты эти по больше йчасти общие для всех линуксов (и не только)? :) -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(8): > может, в backports предложить? Не надо нестабильные версии туда. -- zerg in sisyphus@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 191 bytes --] ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 8:41 ` Andrey Rahmatullin @ 2006-10-15 8:56 ` Artem Zolochevskiy 2006-10-15 9:03 ` Andrey Rahmatullin 0 siblings, 1 reply; 18+ messages in thread From: Artem Zolochevskiy @ 2006-10-15 8:56 UTC (permalink / raw) To: community Andrey Rahmatullin wrote: > Я не понял, вы предлагаете пофиксить sh или написать во всех скриптах > #!/bin/bash? Ничего не предлагаю. Просто пытаюсь понять что мне писать. Ну и по ходу пытаюсь взглянуть на примеры скриптов и понять отчего везде вижу #!/bin/sh, хотя, похоже, используются фичи bash-a. > И почему вы так последовательно говорите о "скриптах в > системе", "скриптах в альте", вы ж прекрасно понимаете, что скрипты эти по > больше йчасти общие для всех линуксов (и не только)? :) > ну тут никакого злого умысла :-) просто так как у меня альт, вот и открываю для скрипты альта, что поглядеть что да как люди делают. то, что общие тоже понятно. -- Artem Zolochevskiy Kaliningrad, Russia JID: az@jabber.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 8:56 ` Artem Zolochevskiy @ 2006-10-15 9:03 ` Andrey Rahmatullin 0 siblings, 0 replies; 18+ messages in thread From: Andrey Rahmatullin @ 2006-10-15 9:03 UTC (permalink / raw) To: community [-- Attachment #1: Type: text/plain, Size: 806 bytes --] On Sun, Oct 15, 2006 at 11:56:23AM +0300, Artem Zolochevskiy wrote: > Ничего не предлагаю. Просто пытаюсь понять что мне писать. Ну и по ходу > пытаюсь взглянуть на примеры скриптов и понять отчего везде вижу #!/bin/sh, > хотя, похоже, используются фичи bash-a. Башизмы - это ошибка скриптов. Их быть не должно. Всё просто :) > ну тут никакого злого умысла :-) просто так как у меня альт, вот и открываю > для скрипты альта, что поглядеть что да как люди делают. то, что общие тоже > понятно. Ну вот, тогда для общего случая "у нас sh == bash" - не аргумент. Только вот как там работают эти кривые скрипты - непонятно. -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(8): Сделаю все, что будет в моих силах. Последних, правда, совсем мало осталось. -- ldv in devel@ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 191 bytes --] ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-14 21:57 [Comm] sh - bash Artem Zolochevskiy 2006-10-14 22:27 ` Alexey Rusakov @ 2006-10-14 22:50 ` Pavel Usischev 2006-10-15 5:53 ` Artem Zolochevskiy 2006-10-15 17:48 ` Michael Shigorin 1 sibling, 2 replies; 18+ messages in thread From: Pavel Usischev @ 2006-10-14 22:50 UTC (permalink / raw) To: ALT Linux Community Artem Zolochevskiy пишет: > Всё, что я когда-то уяснил, это то, что сперва был sh (который чего-то там > не умел) а затем стал bash, который сейчас повсеместно и используется и > чего-то там умеет, чего не умел sh Ну это не то чтобы совсем так :) Совместимы с sh, насколько я знаю, все используемые сейчас шеллы. А это не только bash, но и стандартный во FreeBSD tcsh, и очень мощный zsh. > Собственно вопрос относительно написания скриптов > Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях итп) - если этот > sh такой старый и неумека? Как раз для переносимости скрипта. В ALT /bin/sh -- это особый вариант bash, в других системах это вполне может быть другой шелл, а bash вообще может отсутствовать. > Ну и, если можно, пример можете привести где употребление > #!/bin/sh или #!/bin/bash может сказаться на работоспособности скрипта. > Т.е. какая такая фича может быть в скрипте, что при использовании #!/bin/sh > он работать не будет. Об отличиях bash от изначального Bourne Shell можно почитать, дав команду: info bash 'Major Differences From The Bourne Shell' Однако, насколько я понял, в ALT /bin/sh будет вести себя так же, как /bin/bash (возможно, я просто как-то не так проверял). -- С уважением, Павел Усищев ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-14 22:50 ` Pavel Usischev @ 2006-10-15 5:53 ` Artem Zolochevskiy 2006-10-15 5:57 ` Artem Zolochevskiy ` (2 more replies) 2006-10-15 17:48 ` Michael Shigorin 1 sibling, 3 replies; 18+ messages in thread From: Artem Zolochevskiy @ 2006-10-15 5:53 UTC (permalink / raw) To: community 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 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 5:53 ` Artem Zolochevskiy @ 2006-10-15 5:57 ` Artem Zolochevskiy 2006-10-15 7:26 ` Sergey Vlasov 2006-10-15 17:52 ` Michael Shigorin 2 siblings, 0 replies; 18+ messages in thread From: Artem Zolochevskiy @ 2006-10-15 5:57 UTC (permalink / raw) To: community Artem Zolochevskiy wrote: > Вот и получается что использование #!/bin/sh в альте явно не для > совместимости. естественно под "совместимостью" подразумевал переносимость. -- Artem Zolochevskiy Kaliningrad, Russia JID: az@jabber.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 5:53 ` Artem Zolochevskiy 2006-10-15 5:57 ` Artem Zolochevskiy @ 2006-10-15 7:26 ` Sergey Vlasov 2006-10-15 7:43 ` Artem Zolochevskiy 2006-10-15 10:55 ` [Comm] sh - bash Maksim Otstavnov 2006-10-15 17:52 ` Michael Shigorin 2 siblings, 2 replies; 18+ messages in thread From: Sergey Vlasov @ 2006-10-15 7:26 UTC (permalink / raw) To: community [-- Attachment #1: Type: text/plain, Size: 2027 bytes --] On Sun, Oct 15, 2006 at 08:53:03AM +0300, Artem Zolochevskiy wrote: > Pavel Usischev wrote: > >> Собственно вопрос относительно написания скриптов > >> Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях итп) - если > >> этот sh такой старый и неумека? > > > > Как раз для переносимости скрипта. В ALT /bin/sh -- это особый вариант > > bash, в других системах это вполне может быть другой шелл, а bash вообще > > может отсутствовать. > > Так вот и я так думал, а получается, что нет. Ибо в альтовских скриптах > (благодаря тому, что в альт sh это тот же bash) повсеместно используются > фичи, кот в "оригинальном" sh не прокатят. Получается о совместимости тут > речи нет. В Debian /bin/sh может ссылаться на любой POSIX compatible shell: The standard shell interpreter /bin/sh can be a symbolic link to any POSIX compatible shell, if echo -n does not generate a newline. http://www.debian.org/doc/debian-policy/ch-files.html#s-scripts У нас пока такого нет, но всё равно лучше в скриптах, где написано #!/bin/sh, не использовать возможности, специфические для bash. > альтовский 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 > $ Это arithmetic expansion, который вообще-то входит в последний вариант спецификации POSIX sh: http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_04 Правда, в стандарте есть одна проблема: там написано, что $(($x) и $((x)) должны работать одинаково, но возможность использовать переменные без $ в произвольных выражениях явно не прописана; в результате существуют варианты /bin/sh, для которых заявлена совместимость с POSIX, но выражения вида $((A+B)) там не работают. Использование же конструкций вида $(($A+$B)) потенциально опасно, если переменные могут содержать непроверенные данные, не являющися целыми числами. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 7:26 ` Sergey Vlasov @ 2006-10-15 7:43 ` Artem Zolochevskiy 2006-10-15 11:31 ` Dmitry V. Levin 2006-10-15 17:55 ` [Comm] heirloom toolchest Michael Shigorin 2006-10-15 10:55 ` [Comm] sh - bash Maksim Otstavnov 1 sibling, 2 replies; 18+ messages in thread From: Artem Zolochevskiy @ 2006-10-15 7:43 UTC (permalink / raw) To: community Sergey Vlasov wrote: > В Debian /bin/sh может ссылаться на любой POSIX compatible shell: > > The standard shell interpreter /bin/sh can be a symbolic link to any > POSIX compatible shell, if echo -n does not generate a newline. > > http://www.debian.org/doc/debian-policy/ch-files.html#s-scripts > > У нас пока такого нет, но всё равно лучше в скриптах, где написано > #!/bin/sh, не использовать возможности, специфические для bash. Вот и я о том же. Только у нас, кажется, в дистрибутиве даже не на чем проверить. Ну а я далёк от того чтоб это (не использовать возможности, специфические для bash) было на кончиках пальцев. Я вот для проверки стащил heirloom-sh, после чего собственно и выяснилось, что куда ни глянь в скриптах где #!/bin/sh используются не sh-эвые фишки. К примеру сплошь и рядом что-то типа PROG="${0##*/} - см. к примеру /usr/bin/apropos Или я снова промахнулся? по крайней мере на heirloom-sh такие фишки не прокатывают. Получается, что повсеместно в скриптах указано #!/bin/sh - и работает это с альтовым sh хорошо, а вот с другим - не факт. -- Artem Zolochevskiy Kaliningrad, Russia JID: az@jabber.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 7:43 ` Artem Zolochevskiy @ 2006-10-15 11:31 ` Dmitry V. Levin 2006-10-18 12:01 ` Fr. Br. George 2006-10-15 17:55 ` [Comm] heirloom toolchest Michael Shigorin 1 sibling, 1 reply; 18+ messages in thread From: Dmitry V. Levin @ 2006-10-15 11:31 UTC (permalink / raw) To: ALT Linux general discussion list [-- Attachment #1: Type: text/plain, Size: 688 bytes --] On Sun, Oct 15, 2006 at 10:43:19AM +0300, Artem Zolochevskiy wrote: > Sergey Vlasov wrote: > > > В Debian /bin/sh может ссылаться на любой POSIX compatible shell: > > > > The standard shell interpreter /bin/sh can be a symbolic link to any > > POSIX compatible shell, if echo -n does not generate a newline. > > > > http://www.debian.org/doc/debian-policy/ch-files.html#s-scripts > > > > У нас пока такого нет, но всё равно лучше в скриптах, где написано > > #!/bin/sh, не использовать возможности, специфические для bash. > > Вот и я о том же. Только у нас, кажется, в дистрибутиве даже не на чем > проверить. Есть такой пакет, ash называется. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 11:31 ` Dmitry V. Levin @ 2006-10-18 12:01 ` Fr. Br. George 0 siblings, 0 replies; 18+ messages in thread From: Fr. Br. George @ 2006-10-18 12:01 UTC (permalink / raw) To: ALT Linux Community On Sun, Oct 15, 2006 at 03:31:19PM +0400, Dmitry V. Levin wrote: > > Вот и я о том же. Только у нас, кажется, в дистрибутиве даже не на чем > > проверить. > Есть такой пакет, ash называется. Спасибо, Дима! Читал ветку и всё дивился, что ash умалчивают. -- Георгий Курячий (aka Fr. Br. George) Руководитель образовательных проектов ALT Linux mailto : george at altlinux_ru ^ permalink raw reply [flat|nested] 18+ messages in thread
* [Comm] heirloom toolchest 2006-10-15 7:43 ` Artem Zolochevskiy 2006-10-15 11:31 ` Dmitry V. Levin @ 2006-10-15 17:55 ` Michael Shigorin 1 sibling, 0 replies; 18+ messages in thread From: Michael Shigorin @ 2006-10-15 17:55 UTC (permalink / raw) To: community On Sun, Oct 15, 2006 at 10:43:19AM +0300, Artem Zolochevskiy wrote: > Я вот для проверки стащил heirloom-sh А, вот оно что. Остальной сундук не рассматривали? Оно там в UTF-8 locales работает, в отличие от coreutils. По крайней мере то, что перепробовал (tr и sed); плюс это как фича и заявлено. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 7:26 ` Sergey Vlasov 2006-10-15 7:43 ` Artem Zolochevskiy @ 2006-10-15 10:55 ` Maksim Otstavnov 1 sibling, 0 replies; 18+ messages in thread From: Maksim Otstavnov @ 2006-10-15 10:55 UTC (permalink / raw) To: community Hello Sergey, Sunday, October 15, 2006, 11:26:34 AM, you wrote: SV> Правда, в стандарте есть одна проблема: там написано, что $(($x) и SV> $((x)) должны работать одинаково, но возможность использовать SV> переменные без $ в произвольных выражениях явно не прописана; Так а второе из первого не следует. Я бы исходил из того, что такой возможности нет. SV> в результате существуют варианты /bin/sh, для которых заявлена SV> совместимость с POSIX, но выражения вида $((A+B)) там не работают. SV> Использование же конструкций вида $(($A+$B)) потенциально опасно, SV> если переменные могут содержать непроверенные данные, не являющися SV> целыми числами. А чем бы помогло " $((A+B))"? Кстати, и для раскрытия одной одвускобленной переменной написано, что "*If the shell variable x contains a value that forms a valid integer constant*, then the arithmetic expansions "$((x))" and "$(($x))" shall return the same value" (Ibid., 2.3.6). Не вполне понятно, как должна вести себя оболочка при нецелом или нечисловом значении x; вполне возможно, что последнее предложение в следующем за процитированным абзаце ("If the expression is invalid, the expansion fails and the shell shall write a message to standard error indicating the failure") просто забили отбить абзацем, и оно относится к любому арифметическому раскрытию, а не только к случаям поддержки нестандартных операций или иных типов переменных, о которых говорится в сем абзаце. Я, по крайней мере, столкнувшись некоторое время назад с этим вопросом, понял это так: и "$((x))", и "$(($x))" при неподдерживаемом арифметическом типе x или нечисловом x _должны_ (SHALL) вызывать ошибку раскрытия. Есть другие идеи? PS: А опечаток-то в тексте 2004 г.... :( -- -- Maksim ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-15 5:53 ` Artem Zolochevskiy 2006-10-15 5:57 ` Artem Zolochevskiy 2006-10-15 7:26 ` Sergey Vlasov @ 2006-10-15 17:52 ` Michael Shigorin 2 siblings, 0 replies; 18+ messages in thread From: Michael Shigorin @ 2006-10-15 17:52 UTC (permalink / raw) To: community On Sun, Oct 15, 2006 at 08:53:03AM +0300, Artem Zolochevskiy wrote: > Вот и получается что использование #!/bin/sh в альте явно не > для совместимости. Вы просто заподозрили цели более широкие, чем те, достижение которых ставить разумно. Совместимость -- очень скользкая штука, попробуйте-ка сперва написать по документации чего для SunOS sh, а потом подумать ещё раз -- кому именно нужны привычки вида "пишу на таком sh, чтобы работало везде", а кому вообще-то достаточно bash и позиции "поставьте bash или портируйте сами", что хорошо бы отметить соответственно #!/bin/bash. Короче, дело как обычно не "в альте", а в людях вообще. Общей линии тут, особенной для ALT, мне не наблюдается. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Comm] sh - bash 2006-10-14 22:50 ` Pavel Usischev 2006-10-15 5:53 ` Artem Zolochevskiy @ 2006-10-15 17:48 ` Michael Shigorin 1 sibling, 0 replies; 18+ messages in thread From: Michael Shigorin @ 2006-10-15 17:48 UTC (permalink / raw) To: ALT Linux Community On Sun, Oct 15, 2006 at 02:50:01AM +0400, Pavel Usischev wrote: > > Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях > > итп) - если этот sh такой старый и неумека? > Как раз для переносимости скрипта. В ALT /bin/sh -- это особый > вариант bash, в других системах это вполне может быть другой > шелл, а bash вообще может отсутствовать. Ещё один момент -- sh у нас довольно давно собран ободранным как липка, именно в качестве интерпретатора для скриптов. Поэтому если после какого-нить chroot (например, с rescue cd) получаете шелл, в котором стрелочки не работают (поскольку собран без readline в частности) -- значит, надо запустить bash. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2006-10-18 12:01 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-10-14 21:57 [Comm] sh - bash Artem Zolochevskiy 2006-10-14 22:27 ` Alexey Rusakov 2006-10-15 5:41 ` Artem Zolochevskiy 2006-10-15 6:13 ` Alexey Rusakov 2006-10-15 8:41 ` Andrey Rahmatullin 2006-10-15 8:56 ` Artem Zolochevskiy 2006-10-15 9:03 ` Andrey Rahmatullin 2006-10-14 22:50 ` Pavel Usischev 2006-10-15 5:53 ` Artem Zolochevskiy 2006-10-15 5:57 ` Artem Zolochevskiy 2006-10-15 7:26 ` Sergey Vlasov 2006-10-15 7:43 ` Artem Zolochevskiy 2006-10-15 11:31 ` Dmitry V. Levin 2006-10-18 12:01 ` Fr. Br. George 2006-10-15 17:55 ` [Comm] heirloom toolchest Michael Shigorin 2006-10-15 10:55 ` [Comm] sh - bash Maksim Otstavnov 2006-10-15 17:52 ` Michael Shigorin 2006-10-15 17:48 ` Michael Shigorin
ALT Linux Community general discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 community community/ http://lore.altlinux.org/community \ mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com public-inbox-index community Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.community AGPL code for this site: git clone https://public-inbox.org/public-inbox.git