WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Манипуляции с shell-переменными

Манипуляции с shell-переменными


Дата публикации: 17-03-2013

Несмотря на то, что shell-переменные в общем случае воспринимаются как строки, т.е "35" - это не число, а строка из двух символов "3" и "5", в раде случаев они могут интерпретироваться иначе, например, как целые числа.

Разнообразные возможности имеет команда "expr".

Проиллюстрируем некоторые на примерах:

Выполнение командного файла:

x=7 y=2
a=`expr $x + $y` ; echo a=$a
a=`expr $a + 1` ; echo a=$a
b=`expr $y - $x` ; echo b=$b
c=`expr $x '*' $y` ; echo c=$c
d=`expr $x / $y` ; echo d=$d
e=`expr $x % $y` ; echo e=$e
выдаст на экран

a=9
a=10
b=-5
c=14
d=3
e=1
ВНИМАНИЕ. Операция умножения ("*") обязательно должна быть заэкранирована, поскольку в shell этот значек воспринимается, как спецсимвол, означающий, что на это место может быть подставлена любая последовательность символов.

Следует обратить также внимание на обязательные пробелы, отделяющие переменные и знаки операций.

С командой "expr" возможны не только (целочисленные) арифметические операции, но и строковые:

A=`expr 'cocktail' : 'cock'` ; echo $A
B=`expr 'cocktail' : 'tail'` ; echo $B
C=`expr 'cocktail' : 'cook'` ; echo $C
D=`expr 'cock' : 'cocktail'` ; echo $D
На экран будут выведены числа, показывающее число совпадающих символов в цепочках (от начала). Вторая из строк не может быть длиннее первой :

4
0
0
0
И наконец, об условной замене переменныйх.

Если переменные, скажем "х", "y", "z", не определены, то при обращении к переменным

${x-new} - в качестве значения "x" будет выдано "new",
${y=new} - в качестве значения "у" будет присвоено "new",
${z?new} - в качестве значения "z" будет выдано "z: new" и соответствующая процедура прекращается.
Во всех этих случаях, если переменная была к этому времени определена, то ее значение используется обычным образом.

А в следующем случае наоборот, пусть переменная "v" имеет какое-то значение, тогда

${z+new} - в качестве значения "z" будет выдано "new", а если не было присвоено значение, то пустая строка.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)
Октябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Неизвестный автор:

    "Хедер всему голова."

    Опрос

    Какой браузер Вы используете?

    Internet Explorer
    Google Chrome
    Mozilla Firefox
    Netscape Navigator
    Maxthon Browser
    Opera
    Mozilla Suite
    SeaMonkey
    K-Meleon
    Safari
    Amaya
    Avant Browser
    SlimBrowser
    Другой...