Нейл Мэтью - Основы программирования в Linux

Тут можно читать онлайн Нейл Мэтью - Основы программирования в Linux - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство «БХВ-Петербург», год 2009. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Основы программирования в Linux
  • Автор:
  • Жанр:
  • Издательство:
    «БХВ-Петербург»
  • Год:
    2009
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-0289-4
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Нейл Мэтью - Основы программирования в Linux краткое содержание

Основы программирования в Linux - описание и краткое содержание, автор Нейл Мэтью, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Для начинающих Linux-программистов

Основы программирования в Linux - читать онлайн бесплатно полную версию (весь текст целиком)

Основы программирования в Linux - читать книгу онлайн бесплатно, автор Нейл Мэтью
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

#!/bin/sh

for foo in bar fud 43

do

echo $foo

done

exit 0

В результате будет получен следующий вывод:

bar

fud

43

Примечание

Что произойдет, если вы измените первую строку с for foo in bar fud 43на for foo in "bar fud 43"? Напоминаем, что вставка кавычек заставляет командную оболочку считать все, что находится между ними, единой строкой. Это один из способов сохранения пробелов в переменной.

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

В данном примере создается переменная fooи ей в каждом проходе цикла forприсваиваются разные значения. Поскольку оболочка считает по умолчанию все переменные строковыми, применять строку 43 так же допустимо, как и строку fud.

Упражнение 2.5. Применение цикла forс метасимволами

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

Вы уже видели этот прием в первом примере first. В сценарии применялись средства подстановки командной оболочки — символ *для подстановки имен всех файлов из текущего каталога. Каждое из этих имен по очереди используется в качестве значения переменной $fileвнутри цикла for.

Давайте бегло просмотрим еще один пример подстановки с помощью метасимвола. Допустим, что вы хотите вывести на экран все имена файлов сценариев в текущем каталоге, начинающиеся с буквы "f", и вы знаете, что имена всех ваших сценариев заканчиваются символами .sh. Это можно сделать следующим образом:

#!/bin/sh

for file in $(ls f*.sh); do

lpr $file

done

exit 0

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

В этом примере показано применение синтаксической конструкции $( команда ), которая будет подробно обсуждаться далее (в разделе, посвященном выполнению команд). Обычно список параметров для цикла forзадается выводом команды, включенной в конструкцию $().

Командная оболочка раскрывает f*.sh, подставляя имена всех файлов, соответствующих данному шаблону.

Примечание

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

while

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

Если нужно повторить выполнение последовательности команд, но заранее не известно, сколько раз следует их выполнить, вы, как правило, будете применять цикл whileсо следующей синтаксической записью:

while условие

do

операторы

done

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

#!/bin/sh

echo "Enter password"

read trythis

while [ "$trythis" != "secret" ]; do

echo "Sorry, try again"

read trythis

done

exit 0

Следующие строки могут служить примером вывода данного сценария:

Enter password

password

Sorry, try again

secret

$

Ясно, что это небезопасный способ выяснения пароля, но он вполне подходит для демонстрации применения цикла while. Операторы, находящиеся между операторами doи done, выполняются бесконечное число раз до тех пор, пока условие остается истинным ( true). В данном случае вы проверяете, равно ли значение переменной trythisстроке secret. Цикл будет выполняться, пока $trythisне равно secret. Затем выполнение сценария продолжится с оператора, следующего сразу за оператором done.

until

У цикла untilследующая синтаксическая запись:

until условие

do

операторы

done

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

Примечание

Как правило, если нужно выполнить цикл хотя бы один раз, применяют цикл while; если такой необходимости нет, используют цикл until.

Как пример цикла untilможно установить звуковой сигнал предупреждения, инициируемый во время регистрации нового пользователя, регистрационное имя которого передается в командную строку.

#!/bin/bash

until who | grep "$1" > /dev/null

do

sleep 60

done

# Теперь звонит колокольчик и извещает о новом пользователе

echo -е '\а'

echo "**** $1 has just logged in ****"

exit 0

Если пользователь уже зарегистрировался в системе, выполнять цикл нет необходимости. Поэтому естественно выбрать цикл until, а не цикл while.

case

Оператор caseнемного сложнее уже рассмотренных нами операторов. У него следующая синтаксическая запись:

case переменная in

образец [ | образец ] ...) операторы ;;

образец [ | образец ] ...) операторы ;;

esac

Конструкция оператора caseвыглядит слегка устрашающей, но она позволяет довольно изощренным способом сопоставлять содержимое переменной с образцами и затем выполнять разные операторы в зависимости от того, с каким образцом найдено соответствие. Это гораздо проще, чем проверять несколько условий, применяемых во множественных операторах if, elifи else.

Примечание

Обратите внимание на то, что каждая ветвь с образцами завершается удвоенным символом "точка с запятой" ( ;;). В каждой ветви оператора caseможно поместить несколько операторов, поэтому сдвоенная точка с запятой необходима для отметки завершения очередного оператора и начала следующей ветви с новым образцом в операторе case.

Возможность сопоставлять многочисленные образцы и затем выполнять множественные связанные с образцом операторы делают конструкцию caseочень удобной для обработки пользовательского ввода. Лучше всего увидеть, как работает конструкция caseна примерах. Мы будем применять ее в упражнениях 2.6–2.8, каждый раз совершенствуя сопоставление с образцами.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Нейл Мэтью читать все книги автора по порядку

Нейл Мэтью - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Основы программирования в Linux, автор: Нейл Мэтью. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x