-->

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

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

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

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

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

1 ... 13 14 15 16 17 18 19 20 21 ... 324 ВПЕРЕД
Перейти на страницу:

Переменные-параметры перечислены в табл. 2.3.

Таблица 2.3

Переменная-параметр Описание
$1
,
$2
, ...
Параметры, передаваемые сценарию
$*
Список всех параметров в единственной переменной, разделенных первым символом из переменной окружения
IFS
. Если
IFS
корректируется, способ разделения командной строки на параметры в переменной
$*
изменяется
[email protected]
Едва различимая вариация
$*
; не использует переменную окружения
IFS
, поэтому параметры не сольются, даже если переменная
IFS
пуста

Легче всего увидеть разницу между переменными-параметрами

$*
и
[email protected]
, опробовав их.

$ <b>IFS=''</b>

$ <b>set foo bar bam</b>

$ <b>echo &quot;[email protected]&quot;</b>

foo bar bam

$ <b>echo &quot;$*&quot;</b>

foobarbam

$ <b>unset IFS</b>

$ <b>echo &quot;$*&quot;</b>

foo bar bam

Как видите, заключенная в двойные кавычки переменная-параметр

[email protected]
представляет позиционные параметры как отдельные поля, независимо от значения переменной окружения
IFS
. Как правило, если вы хотите получить доступ к параметрам, лучше использовать переменную-параметр.

Помимо вывода на экран содержимого переменных с помощью команды

echo
, вы также можете прочитать его командой
read
(упражнение 2.2).

Упражнение 2.2. Манипулирование параметрами и переменными окружения

В приведенном далее сценарии показано несколько простых манипуляций переменными. После ввода сценария и записи его в файл try_var не забудьте превратить его в исполняемый файл с помощью команды

chmod +х try_var
.

#!/bin/sh

salutation=&quot;Hello&quot;

echo $salutation

echo &quot;The program $0 is now running&quot;

echo &quot;The second parameter was $2&quot;

echo &quot;The first parameter was $1&quot;

echo &quot;The parameter list was

echo &quot;The user's home directory is $HOME&quot;

echo &quot;Please enter a new greeting&quot;

read salutation

echo $salutation

echo &quot;The script is now complete&quot;

exit 0

Если вы выполните этот сценарий, то получите следующий вывод:

$ <b>./try_var foo bar baz</b>

Hello

The program ./try_var is now running

The second parameter was bar

The first parameter was foo

The parameter list was foo bar baz

The user's home directory is /home/rick

Please enter a new greeting

<b>Sire</b>

Sire

The script is now complete $

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

Сценарий создает переменную

salutation
, выводит на экран ее содержимое и затем показывает, что уже сформированы и имеют соответствующие значения различные переменные-параметры и переменная окружения
$НОМЕ
.

Далее в этой главе мы рассмотрим более подробно подстановку параметров.

Условия

Основа всех языков программирования — средства проверки условий и выполнение различных действий с учетом результатов этой проверки. Но прежде чем говорить об этом, давайте рассмотрим условные конструкции, которые можно применять в сценариях командной оболочки, а затем познакомимся с использующими их управляющими структурами.

Сценарий командной оболочки может проверить код завершения любой команды, вызванной из командной строки, включая сценарии, написанные вами. Вот почему так важно всегда включать в создаваемые вами сценарии команду exit с определенным значением.

Команда test или [

На практике в большинстве сценариев широко используется команда

[
или
test
— логическая проверка командной оболочки. В некоторых системах команды
[
и
test
— синонимы, за исключением того, что при использовании команды
[
для удобочитаемости применяется и завершающая часть
]
. Наличие команды
[
может показаться странным, но в программном коде она упрощает синтаксис и делает его более похожим на другие языки программирования.

Примечание

Эти команды в некоторых ранних оболочках UNIX вызывают внешнюю программу, но в более современных версиях их стараются делать встроенными. Мы вернемся к этому, когда будем рассматривать команды в следующем разделе.

Поскольку команда

test
не часто применяется за пределами сценариев командной оболочки, многие пользователи ОС Linux, никогда раньше не писавшие сценариев, пытаются создавать простые программы и называют их test. Если такая программа не работает, вероятно, она конфликтует с командой оболочки
test
. Для того чтобы выяснить, есть ли в вашей системе внешняя команда с данным именем, попытайтесь набрать что-нибудь вроде
which test
и проверить, какая именно команда
test
выполняется в данный момент, или используйте форму
./test
, чтобы быть уверенным в том, что вы выполняете сценарий из текущего каталога. Если сомневаетесь, примите за правило выполнять свои сценарии, предваряя при запуске их имена комбинацией символов
./
.

1 ... 13 14 15 16 17 18 19 20 21 ... 324 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название