LINUX.ORG.RU

Скрипт.


0

0

Есть скрипт, пишет инфу о ip хоста, вроде все пашет, только выкидывает ошибку, что, мол, "unary operator expected". В принципе не страшно, но немного анноит. Чем лечится, не подскажете?? И куда копать (хотя бы приблизительно). Спасибо.

#!/bin/bash
# Kidaet infu o ip hosta
if [ $1 == $(cat /dev/null) ]; then echo 'Usage: hostinfo hostname' && exit
fi
host $1 | sed -n 's/ has address//p' | cut -f 2 -d ' ' > /tmp/hostinfo
whois $(cat /tmp/hostinfo)
rm -f /tmp/hostinfo

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

ошибка конечно была в двух ==

А сравнивают не так [ $1 = .. ] а как то по другому насколько я понимаю потому что $1 может оказаться содержащим знак минус -- и тогда [ может воспринять это как опцию..

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

проблема уже решена, друган помог, спасибо всем :)

gr_buza ★★★★
() автор топика

>if [ $1 == $(cat /dev/null) ]; then echo 'Usage: hostinfo hostname' && exit

ИМХО это криво. почему бы не использовать $# ?

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

hostinfo '' даст $# равный 1, так что это может быть только предварительной проверкой, параметры на пустоту потом проверить все-равно надо будет.

Для gr_buza:

Все переменные в скриптах желательно брать в "", чтобы они "случайно" не пропали.

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