Существует еще несколько способов присвоения значения переменной:
- использование команды 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.
Статьи к прочтению:
- При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются.
- При выполнении пп.1-5 воспользуйтесь методическими рекомендациями «основы пользовательского интерфейса пакета mathcad.
C++ Урок 2 (Присвоение значения переменной)
Похожие статьи:
-
Присвоение начального значения
В том случае, если начальные значения членов структуры известны, можно присвоить их при определении переменной. Если вы создаете только одну переменную…
-
Листинг 5. проверка значений двух переменных.
/*twovars.c*/main() { intdepents; floatincome; puts( Укажите сумму Вашего годового дохода ); scanf( %f , income); puts( Пожалуйста, укажите количество…