Страница 1 из 1
команда test
Добавлено: 2008-11-26 17:06:07
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
почиму ругается условие в [] ?
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=''.
Re: команда test
Добавлено: 2008-11-26 17:23:03
ev
Или можно разделитель поставить в 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
Re: команда test
Добавлено: 2008-11-26 17:36:57
ev
все, разобрался
спасибо за наводку

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