команда test

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

команда test

Непрочитанное сообщение ev » 2008-11-26 17:06:07

Код: Выделить всё

pkg=`${pkg_info} | ${grep} ${p_name}`
echo ${pkg}
if [ ${pkg} ];
then
  log "${p_name} exist"
fi
получаю примерно такой вывод

Код: Выделить всё

libtool-1.5.26 Generic shared library support script
[: libtool-1.5.26: unexpected operator
libiconv-1.11_1 A character set conversion library
[: libiconv-1.11_1: unexpected operator
почиму ругается условие в [] ?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: команда test

Непрочитанное сообщение Гость » 2008-11-26 17:16:26

ev писал(а):

Код: Выделить всё

pkg=`${pkg_info} | ${grep} ${p_name}`
echo ${pkg}
if [ ${pkg} ];
then
  log "${p_name} exist"
fi
получаю примерно такой вывод

Код: Выделить всё

libtool-1.5.26 Generic shared library support script
[: libtool-1.5.26: unexpected operator
libiconv-1.11_1 A character set conversion library
[: libiconv-1.11_1: unexpected operator
почиму ругается условие в [] ?
возми в кавычки, иначе нужно экранировать пробелы. Или можно разделитель поставить в NULL так: IFS=''.

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Re: команда test

Непрочитанное сообщение ev » 2008-11-26 17:23:03

Или можно разделитель поставить в NULL так: IFS=''
непонял

Гость
проходил мимо

Re: команда test

Непрочитанное сообщение Гость » 2008-11-26 17:26:52

сделай поиск по field splitting в sh(1)

Гость
проходил мимо

Re: команда test

Непрочитанное сообщение Гость » 2008-11-26 17:34:14

пример:

Код: Выделить всё

$ IFS='|' blah="foo|bar"
$ echo $blah
foo bar
$ [ $blah ]
[: foo: unexpected operator

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Re: команда test

Непрочитанное сообщение ev » 2008-11-26 17:36:57

все, разобрался
спасибо за наводку :)

Гость
проходил мимо

Re: команда test

Непрочитанное сообщение Гость » 2008-11-26 17:41:24

вот еще примерчик, а то уже написал:

Код: Выделить всё

$ blah="foo bar"
$ ls $blah
ls: bar: No such file or directory
ls: foo: No such file or directory
$ IFS=''
$ ls $blah
ls: foo bar: No such file or directory