Основы программирования в Linux
Шрифт:
Эта команда открывает файловый дескриптор 3 для чтения из файла afile. Этот вариант редко используется.
Команда
При программировании сценариев в командной оболочке код завершения 0 — успешное завершение сценария, коды от 1 до 125 включительно — коды ошибок, которые можно использовать в сценариях. Оставшиеся значения зарезервированы
Таблица 2.5
Код завершения | Описание |
---|---|
126 | Файл не является исполняемым |
127 | Команда не найдена |
128 и выше | Появившийся сигнал |
Многим программистам на языках С и С++ использование нуля как признака успешного завершения может показаться несколько необычным. Большое преимущество сценариев — возможность применения 125 кодов ошибок, определенных пользователем, и отсутствие необходимости в глобальной переменной для хранения кода ошибки.
Далее приведен простой пример, возвращающий код успешного завершения, если в текущем каталоге существует файл с именем .profile.
Если вы любитель острых ощущений или, как минимум, лаконичных сценариев, можете переписать сценарий в виде одной строки, используя комбинацию И-списка и ИЛИ-списка, описанных ранее:
Команда
1. Первым представим сценарий export2.
2. Теперь сценарий export1. В конце сценария запускается export2.
Если вы запустите их, то получите следующий результат.
Как это работает
Сценарий export2 просто выводит значения двух переменных. В сценарии export1 задаются значения обеих переменных, но только переменная bar помечается как экспортируемая, поэтому, когда впоследствии запускается сценарий export2, значение переменной
После того как переменная была экспортирована из командной оболочки, она экспортируется в любые сценарии, запускаемые из этой оболочки, и в любые командные оболочки, которые в свою очередь запускают эти сценарии, и т.д. Если бы сценарий export2 вызвал другой сценарий, в нем переменная
Команды
Команда
Символы
Команда expr обладает большими возможностями, с ее помощью можно вычислять различные выражения. Основные виды вычислений перечислены в табл. 2.6.
Таблица 2.6
Вычисление выражения | Описания |
---|---|
Выражение1 | Выражение2 | Выражение1 , еслиВыражение1 не равно нулю, в противном случаеВыражение2 |
Выражение1 & Выражение2 | Нуль, если оба выражения равны нулю, в противном случае Выражение1 |
Выражение1 = Выражение2 | Равенство |
Выражение1 > Выражение2 | Больше чем |
Выражение1 >= Выражение2 | Больше или равно |
Выражение1 < Выражение2 | Меньше чем |
Выражение1 <= Выражение2 | Меньше или равно |
Выражение1 != Выражение2 | Неравенство |
Выражение1 + Выражение2 | Сложение |
Выражение1 — Выражение2 | Вычитание |
Выражение1 * Выражение2 | Умножение |
Выражение1 / Выражение2 | Деление нацело |
Выражение1 % Выражение2 | Остаток от деления нацело |
В современных сценариях вместо команды
Команда
У команды следующая синтаксическая запись.
Строка формата очень похожа с некоторыми ограничениями на применяемую в языках программирования С и С++. Главным образом не поддерживаются числа с плавающей точкой, поскольку все арифметические операции в командной оболочке выполняются над целыми числами. Строка формата состоит из произвольной комбинации литеральных символов, escape-последовательностей и спецификаторов преобразования. Все символы строки формата, отличающиеся от