-->

Основы программирования в Linux

На нашем литературном портале можно бесплатно читать книгу Основы программирования в Linux, Мэтью Нейл-- . Жанр: Программирование / ОС и Сети. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Основы программирования в Linux
Название: Основы программирования в Linux
Дата добавления: 16 январь 2020
Количество просмотров: 666
Читать онлайн

Основы программирования в Linux читать книгу онлайн

Основы программирования в Linux - читать бесплатно онлайн , автор Мэтью Нейл
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 24 25 26 27 28 29 30 31 32 ... 324 ВПЕРЕД
Перейти на страницу:
Упражнение 2.14. Экспорт переменных

1. Первым представим сценарий export2.

#!/bin/sh

echo "$foo"

echo "$bar"

2. Теперь сценарий export1. В конце сценария запускается export2.

#!/bin/sh

foo="The first meta-syntactic variable"

export bar="The second meta-syntactic variable"

export2

Если вы запустите их, то получите следующий результат.

$ <b>./export1</b>

The second meta-syntactic variable

$

Как это работает

Сценарий export2 просто выводит значения двух переменных. В сценарии export1 задаются значения обеих переменных, но только переменная bar помечается как экспортируемая, поэтому, когда впоследствии запускается сценарий export2, значение переменной

foo
потеряно, а значение переменной
bar
экспортировано во второй сценарий. На экране появляется пустая строка, поскольку
$foo
ничего не содержит и вывод переменной со значением
null
приводит к отображению новой строки.

После того как переменная была экспортирована из командной оболочки, она экспортируется в любые сценарии, запускаемые из этой оболочки, и в любые командные оболочки, которые в свою очередь запускают эти сценарии, и т.д. Если бы сценарий export2 вызвал другой сценарий, в нем переменная

bar
также была бы доступна.

Примечание

Команды

set -а
или
set -allexport
экспортируют все переменные соответственно.

expr

Команда

expr
вычисляет выражение, составленное из ее аргументов. Чаще всего она применяется для подсчета простых арифметических выражений в следующем виде:

х=`expr $x + 1`

Символы

``
(обратная кавычка или обратный апостроф) заставляют переменную
х
принять результат выполнения команды
expr $х + 1
. Ее можно также записать с помощью синтаксической конструкции
$( )
вместо обратной кавычки, например, следующим образом:

х=$(expr $х + 1)

Команда expr обладает большими возможностями, с ее помощью можно вычислять различные выражения. Основные виды вычислений перечислены в табл. 2.6.

Таблица 2.6

Вычисление выражения Описания
<i>Выражение1 | Выражение2</i>
<i>Выражение1</i>
, если
Выражение1
не равно нулю, в противном случае
Выражение2
<i>Выражение1</i> &amp; <i>Выражение2</i>
Нуль, если оба выражения равны нулю, в противном случае
Выражение1
<i>Выражение1</i> = <i>Выражение2</i>
Равенство
<i>Выражение1</i> &gt; <i>Выражение2</i>
Больше чем
<i>Выражение1</i> &gt;= <i>Выражение2</i>
Больше или равно
<i>Выражение1</i> &lt; <i>Выражение2</i>
Меньше чем
<i>Выражение1</i> &lt;= <i>Выражение2</i>
Меньше или равно
<i>Выражение1</i> != <i>Выражение2</i>
Неравенство
<i>Выражение1</i> + <i>Выражение2</i>
Сложение
<i>Выражение1</i> — <i>Выражение2</i>
Вычитание
<i>Выражение1</i> * <i>Выражение2</i>
Умножение
<i>Выражение1</i> / <i>Выражение2</i>
Деление нацело
<i>Выражение1</i> % <i>Выражение2</i>
Остаток от деления нацело

В современных сценариях вместо команды

expr
обычно применяется более эффективная синтаксическая конструкция
$((...))
, которая будет описана далее в этой главе.

printf

Команда

printf
есть только в современных командных оболочках. Группа X/Open полагает, что ее следует применять вместо команды
echo
для генерации форматированного вывода, несмотря на то, что, кажется, лишь немногие следуют этому совету.

У команды следующая синтаксическая запись.

<b>printf</b><i> &quot;строка формата&quot; параметр1 параметр2 ...</i>

Строка формата очень похожа с некоторыми ограничениями на применяемую в языках программирования С и С++. Главным образом не поддерживаются числа с плавающей точкой, поскольку все арифметические операции в командной оболочке выполняются над целыми числами. Строка формата состоит из произвольной комбинации литеральных символов, escape-последовательностей и спецификаторов преобразования. Все символы строки формата, отличающиеся от

и
%
, отображаются на экране при выводе.

В табл. 2.7 приведены поддерживаемые командой escape-последовательности.

Таблица 2.7

Escape-последовательность Описание
&quot;
Двойная кавычка
\
Символ обратный слэш
a
Звуковой сигнал тревоги (звонок колокольчика или прерывистый звуковой сигнал)
b
Символ Backspace (стирание слева)
c
Отбрасывание последующего вывода
f
Символ Form feed (подача бумаги)
n
Символ перехода на новую строку
r
Возврат каретки
t
Символ табуляции
v
Символ вертикальной табуляции
ooo
Один символ с восьмеричным значением
ooo
xHH
Один символ с шестнадцатеричным значением
HH
1 ... 24 25 26 27 28 29 30 31 32 ... 324 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название