LinuxForum.Fans
Тема

Непонятка по bash

Автор: astalavista 31 сообщений 4598 просмотров
#114895
Hvzh написал:
"w1" == "w2"
И еще я неуверен в необходимости наличия кавычек

Не помогает, ни отсутствие кавычек ни ==

#114904

Сорри, с == я погорячился. Достаточно =

#114971
text
#!/bin/bash
w1=`ifconfig eth0 | grep Interrupt`
w2=Interrupt:19
if [ $w1 = $w2 ]; then
echo "Ok!"
else
echo "NO"
fi

Ошибки исправил. Но дело в том, что если делаю w1=Interrupt:19, то всё правильно обрабатывает, а когда делаю именно как в примере, то не хочет, хотя значение тоже самое!

#114974

astalavista, а так:

text

#!/bin/bash
w1=`ifconfig eth0 | grep Interrupt | awk '{print $1}'`
w2=Interrupt:19
if [ $w1 = $w2 ]; then
echo "Ok!"
else
echo "NO"
fi
#114990

Ок!
А как значению переменной присвоить имя этого же запускаемого файла ?
т.е.
если файл имеет имя qwer , то переменная w=qwer

#114992

astalavista, надеюсь, что правильно вас понял:

text

#!/bin/sh
NAME=`basename $0`
echo "It $NAME"
#116065

Подскажите пожалуйста еще один момент...
Как можно определить наличие файла в каталоге, т.е.

text
if [ есть ли файл ааа ?? ]; then
   echo "Ok"
else
   touch aaa
fi
#116073
text

[ -e aaa ] > /dev/null 2>&1 && echo OK || touch aaa

или, как вам привычнее

text

if [ -e aaa ]; then
   echo "Ok"
else
   touch aaa
fi

P.S. Квадратные скобки в данном случае аналог команды test, так что man test.

Войдите или зарегистрируйтесь, чтобы ответить.