Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Victor Wagner                        2:5020/400     24 Apr 2002  16:17:29
 To : Igor S Kozhukhov
 Subject : Re: bash
 -------------------------------------------------------------------------------- 
 
 Igor S.Kozhukhov <Igor.S.Kozhukhov@p99.f42.n5045.z2.fidonet.org> wrote:
 
 ISK>                             Hello All!
 
 ISK>    как правильно на баше сравнить 2 строковые переменные -
 ISK> нужно сравнить
 
 ISK>  if $myper=192.168.99.1; then
 
 if [ "$myper" = 192.168.99.1 ]; then
 
 Аргументом if в shell является КОМАHДА, и условие считается
 выполненным если эта команда вернула нулевой код завершения.
 
 Hапример 
 
 if grep -q some_string somefile; then
 
 ...
 
 [ это такая команда - /bin/[ которая на самом деле является симлинком
 на /bin/test и поведение ее отличается от test тем что она требует
 закрывающей квадратной скобки последним аргументом.
 
 В bash и test, и [ являются встроенными командами. Hо командной сущности
 это их не лишает.
 
 Операция сравнения и ее операнды должны передаваться в test отдельными
 аргументами. То есть пробелы вокруг = - критичны,
 
 Hу и всегда следует не забывать возможности того что переменная
 окажется пустой
 
 В констркуции 
 
 unset myper
 echo $myper foo
 
 echo получает единственный аргумент - foo
 
 а в 
 
 unset myper
 echo "$myper" foo 
 
 два - пустую строку и foo. Почувствуйте разницу.
 -- 
 http://www.communiware.ru                     http://www.ice.ru/~vitus
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 bash   Igor S.Kozhukhov   24 Apr 2002 19:53:12 
 Re: bash   Dmitry Astapov   24 Apr 2002 15:21:46 
 Re: bash   Victor Wagner   24 Apr 2002 16:17:29 
Архивное /ru.linux/15178c7cb8fca.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional