LINUX.ORG.RU
ФорумAdmin

Детский вопрос по shell, подскажите!


0

1

Есть переменная TABLE, в которую попадает вывод другой команды. Там может быть либо ноль строк, либо одна, либо несколько. Мне надо проверить на предмет нуля строк. Делаю так:

if [ ! -n $TABLE ] ; then

и в том случае, когда в $TABLE несколько строк, получаю:

[: 199.10.8.52: unexpected operator

Отцы, подскажите, как правильнее сделать такую проверку?


Ответ на: комментарий от Tanger

Спасибо дружище, ты меня спас!!!

Очень неочевидная штука для меня. Это где-то особо оговаривалось в доках шела? Я не нашёл просто :(((

xl743
() автор топика
Ответ на: комментарий от OldFatMan

Да, я тоже вначале с -z сделал, но была такая же ошибка, и я уже попробовал потом ! -n, и в таком виде тут показал!

xl743
() автор топика
Ответ на: комментарий от Tanger

Спасибо, дружище, пошёл ещё читать доку! Тут просто уже и так, и сяк, в тупике был!

xl743
() автор топика
Ответ на: комментарий от aol

особенно веселит, когда проверяется

[ «xyes» == «x» ] (в той же фряхе, например, сплошь и рядом такое

lazyklimm ★★★★★
()
Ответ на: комментарий от leave

Про wc я знаю, но вопрос не в том был! Непонятно было, как проверить переменную, в которой много строк!

xl743
() автор топика
Ответ на: комментарий от xl743

Непонятно было, как проверить переменную, в которой много строк!

test 0 -eq `echo -n $var | wc -l` && echo "ноль строк" || echo "не ноль строк"
lazyklimm ★★★★★
()
Ответ на: комментарий от aol

aol

есть еще вот какой трюк:if [ «x$TABLE» == «x» ]то есть, когда в $TABLE пусто, будет «x» == «x»

зачем тут кавычки? такой трюк с кавычками будет работать без x, а с x без кавычек (не всегда).

ЗЫЖ есть ещё [ ! «$TABLE» ]

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.