Присвоение значений переменным

      Комментарии к записи Присвоение значений переменным отключены

Существует еще несколько способов присвоения значения переменной:

  • использование команды read для присвоения ввода переменной;
  • перенаправление вывода команды в переменную;
  • присвоение позиционного параметра переменной.

Использование команды read

Общий формат команды read:

read variable

Значение, присвоенное командой read переменной variable, будет заменять $variable где бы она не встречалась в программе пользователя.

Команда read будет ждать до тех пор, пока вы не введете строку символов и нажмете клавишу , тем самым присваивая строку переменной.

Следующий пример покажет вам, как написать простую shell программу num.please, содержащую имена. Программа будет выглядеть следующим образом:

cat num.please

echo Введите имя:

Read name

grep $name home/list

Создайте файл list, содержащий несколько фамилий и номеров телефонов. И теперь запустите файл num.please. В следующем примере приводится текст программы mknum, которая создает список номеров телефонов и абонентов.

Если вы хотите, чтобы вывод команды echo добавлялся в конец списка, то вы должны использовать . Если вы будете использовать , то список будет состоять из последнего номера телефона, который вы добавили.

С помощью команды cat:

cat mknum

отобразите содержание программы mknum:

Echo Введите имя

Read name

Echo Введите номер

Read num

echo $name $numlist

Сделайте mknum выполняемой программой:

chmod u+x mknum

4.6. Арифметические операции: команда let

Команда let- это команда интерпретатора BASH shell, обеспечивающая выполнение операций над арифметическими величинами. С помощью этой команды можно сравнивать числовые значения или выполнять над ними арифметические операции, такие как сложение или умножение. Командаlet задается либо с помощью ключевого слова let, либо посредством двойных круглых скобок. Базовый формат команды включает ключевое слово let, за которым следуют два числовых значения, разделенных арифметическим оператором либо оператором сравнения:

$ letзначение1 оператор значение2

Следующий пример наглядно демонстрирует, как изменяется работа интерпретатора при использовании ключевого слова let.

$ T=2+3

$ echo $T

2+3

$ let T=2+3

$ echo $T

В shell-сценариях может использоваться любой из перечисленных в таблице 1 операторов.

Ключевое слово letможно использовать и без оператора присваивания.

$ let 2*7

Если в арифметическом выражении между операндами необходимо поместить пробелы, выражение следует заключить в кавычки. Аргументом команды letможет быть только одно арифметическое выражение, например: $ let 2V*V7

Таблица 1

Арифметические операторы Функции
* Умножение
/ Деление
+ Сложение
Вычитание
Логические операторы Функции
Больше чем
Меньше чем
= Больше либо равно
Меньше либо равно
= Равенство в выражениях
!= Не равно

Конструкции языка программирования Shell

Язык программирования shell имеет несколько конструкций, которые придадут гибкость вашим программам:

  • комментарии позволят описывать функции программы;
  • команда exit позволяет завершать программу в нужной точке и использовать коды возврата;
  • конструкции цикла for, while позволяют повторять группу команд в цикле;
  • условные команды if и case выполняют группу команд, если выполнилось некоторое условие;
  • команда break позволяет выполнить безусловный выход из цикла.

Комментарии

Чтобы в программе разместить комментарии, воспользуйтесь знаком #. Если знак # стоит после команды, то сама команда выполняется, а комментарий игнорируется. Формат строки комментария:

#comment

Циклы

Операторы цикла for и while позволяют выполнить команду или последовательность команд несколько раз.

Оператор for

Оператор for выполняет последовательность команд для каждого элемента списка. Он имеет формат:

forпеременная

in значения переменной

do

команда_1

последняя команда

done

Для каждой итерации цикла следующий элемент списка присваивается переменной, данной в операторе for. Ссылка на эту переменную может быть сделана в любом месте в командах внутри оператора do. При конструировании каждой секции команд вам необходимо убедиться, что каждому do соответствует done в конце цикла. Переменная может иметь любое имя. Например, если ваша переменная названа var, то ссылка в списке команд на $var сделает значение доступным. Если оператор in опущен, то значением для var будет набор аргументов, заданный в команде и доступный в специальном параметре $*. Список команд между ключевым словом do и done будет выполнен для каждого значения.

Когда команды будут выполнены для последнего элемента списка, программа будет выполнять строку ниже done.

Оператор while

Оператор цикла while использует 2 группы команд. Он будет выполнять последовательность команд во второй группе (список do … done) до тех пор, пока последняя команда в первой группе (список while) возвращает состояние истина, означающее, что выражение после do может быть выполнено.

Общий формат оператора цикла while:

while

команда_1

последняя команда

do

команда _1

последняя команда

done

Например, программа enter.name использует цикл while для ввода списка имен в файл. Программа состоит из следующих командных строк:

echo “Введите пожалуйста список имён”

echo “после завершения ввода нажмите ”

While read x

Do

echo $xxfile

Done

echo xfile содержит следующие имена:

Cat xfile

Их можно просмотреть, введя команду:

cat enter.name

Обратите внимание, что после завершения цикла программа выполняет команды ниже done.

После того, как цикл завершится, программа распечатает все имена, содержащиеся в xfile.

Статьи к прочтению:

C++ Урок 2 (Присвоение значения переменной)


Похожие статьи: