Отправляет email-рассылки с помощью сервиса Sendsay

sh or bash

Добрый день!
Подскажите, пожалуйста, почему строчка
echo $($SNMPGET $r $JUNIPERDESCR|cut -f 1,2 -d ":"):" "Juniper\$$($SNMPGET
$r $JUNIPERDESCR|cut -f 3 -d ":"|cut -f 6 -d " ")\$
нормально работает в bash и выдает ошибку в sh?
Спасибо!
--

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28701; Возраст листа: 1208; Участников: 1391
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/609973

Ответить   Tue, 14 Nov 2006 19:13:13 +0300 (MSK) (#609973)

 

Ответы:

volk:

Если мне не изменяет память, то именно эта конструкция будет работать в
bash, но не будет в sh. Причина тривиальна, у bash'а есть свои расширения
для стандартного шелла, ежели они используются, то скрипт будет совместим
только с bash (ну или еще чем-нибудь где реализовано аналогичное
расширение).

Ответить   Roman I Khimov Wed, 15 Nov 2006 00:06:47 +0300 (#610056)

 

Да, это понятно. Вопрос в том, какая именно часть не нравится sh?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28720; Возраст листа: 1209; Участников: 1390
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/610264

Ответить   Wed, 15 Nov 2006 16:28:31 +0300 (MSK) (#610264)

 

В сообщении от 1163600911 секунд после начала Эпохи volk написал(а):

Встречный вопрос - значения переменных $SNMPGET, $r, $JUNIPERDESCR ?

Ответить   Konstantin Korikov Wed, 15 Nov 2006 17:23:36 +0200 (#610309)

 

Это не имело значения...
$SNMPGET - путь к snmpget, $r - айпишник узла, $JUNIPERDESCR - MIB.

--

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28743; Возраст листа: 1210; Участников: 1391
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/610768

Ответить   Thu, 16 Nov 2006 20:27:43 +0300 (MSK) (#610768)

 

volk:

$(что-то страшное внутри)

Если, конечно, я не ошибаюсь. :) Но по-моему, это расширение bash'а.

Ответить   Roman I Khimov Wed, 15 Nov 2006 19:44:37 +0300 (#610321)

 

Да, дело оказалось именно в этом. $`что-то` все поставило на свои места. Просто
привыкаешь как-то к одному способу и уже второй просто вылетает из головы.

ОС - Solaris 9.
bash-2.05$ ls -l /bin/sh
-r-xr-xr-x 3 bin root 91780 Sep 1 2001 /bin/sh
bash-2.05$ ls -l /usr/local/bin/bash
-rwxr-xr-x 1 bin bin 3685104 Jun 14 2001 /usr/local/bin/bash

Спасибо!
--

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28742; Возраст листа: 1210; Участников: 1391
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/610767

Ответить   Thu, 16 Nov 2006 20:25:59 +0300 (MSK) (#610767)

 

volk:

Впрочем, кажется, я ошибся. $() поддерживается по крайней мере в dash,
который вроде как весь совместимый с POSIX и на который в Ubuntu Edgy
указывает /bin/sh...

$ ls -l /bin/sh
?

Ответить   Roman I Khimov Wed, 15 Nov 2006 20:32:44 +0300 (#610333)

 

Roman I Khimov:

В качестве замечания, также он поддерживается в ksh, но не поддерживается в
csh.

Ответить   Roman I Khimov Wed, 15 Nov 2006 20:55:03 +0300 (#610342)

 

В сообщении от 1163616903 секунд после начала Эпохи Roman I Khimov написал(а):

А также поддерживается в варианте shell что в FreeBSD, в который
добавили поддержку POSIX.1.

Любой шелл, соответствующий POSIX.1 должен поддерживать $()
http://www.opengroup.org/onlinepubs/009695399/xrat/xcu_chap02.html#tag_02_02_06_03

Ответить   Konstantin Korikov Wed, 15 Nov 2006 20:53:52 +0200 (#610366)