Библиотека knigago >> Компьютеры: Языки и системы программирования >> Другие языки и системы программирования >> Искусство программирования на языке сценариев командной оболочки


Эта книга из серии «Детская военно-морская энциклопедия» предназначена для юных читателей, увлекающихся морской тематикой и корабельным делом. * Книга содержит множество иллюстраций, фотографий и схем, которые помогают детям лучше представить описываемые объекты и понять принципы их работы. * Текст написан понятным и увлекательным языком, что делает его доступным для детей младшего школьного возраста. * Энциклопедия охватывает широкий спектр тем, связанных с современным флотом, включая...

СЛУЧАЙНАЯ КНИГА

Мендель Купер - Искусство программирования на языке сценариев командной оболочки

Искусство программирования на языке сценариев командной оболочки
Книга - Искусство программирования на языке сценариев командной оболочки.  Мендель Купер  - прочитать полностью в библиотеке КнигаГо
Название:
Искусство программирования на языке сценариев командной оболочки
Мендель Купер

Жанр:

Другие языки и системы программирования, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Unix, Системное программирование

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Искусство программирования на языке сценариев командной оболочки"

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.


К этой книге применимы такие ключевые слова (теги) как: Bash Linux Unix Shell

Читаем онлайн "Искусство программирования на языке сценариев командной оболочки". [Страница - 6]

функции или сценария.

$$

id процесса. Переменная $$ хранит id процесса сценария.

()

группа команд.

(a=hello; echo $a)


Книгаго: Искусство программирования на языке сценариев командной оболочки. Иллюстрация № 5 Команды, заключенные в круглые скобки исполняются в дочернем процессе -- subshell-е.

Переменные, создаваемые в дочернем процессе не видны в "родительском" сценарии. Родительский процесс-сценарий, не может обращаться к переменным, создаваемым в дочернем процессе.

a=123

( a=321; )


echo "a = $a" # a = 123

# переменная "a" в скобках подобна локальной переменной.


инициализация массивов.

Array=(element1 element2 element3)


{xxx,yyy,zzz,...}

Фигурные скобки.

grep Linux file*.{txt,htm*}

# Поиск всех вхождений слова "Linux"

# в файлах "fileA.txt", "file2.txt", "fileR.html", "file-87.htm", и пр.


Команда интерпретируется как список команд, разделенных точкой с запятой, с вариациями, представленными в фигурных скобках.[ 11 ] При интерпретации имен файлов (подстановка) используются параметры, заключенные в фигурные скобки.

Книгаго: Искусство программирования на языке сценариев командной оболочки. Иллюстрация № 6 Использование неэкранированных или неокавыченных пробелов внутри фигурных скобок недопустимо.

echo {file1,file2}\ :{\ A," B",' C'}

file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C

{}

Блок кода. [фигурные скобки] Известен так же как "вложенный блок", эта конструкция, фактически, создает анонимную функцию. Однако, в отличии от обычных функций, переменные, создаваемые во вложенных блоках кода, доступны объемлющему сценарию.

bash$ { local a; a=123; }

bash: local: can only be used in a function


a=123

{ a=321; }

echo "a = $a" # a = 321 (значение, присвоенное во вложенном блоке кода)


# Спасибо, S.C.


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

(обратно)

Пример 3-1. Вложенные блоки и перенаправление ввода-вывода

#!/bin/bash

# Чтение строк из файла /etc/fstab.


File=/etc/fstab


{

read line1

read line2

} < $File


echo "Первая строка в $File :"

echo "$line1"

echo

echo "Вторая строка в $File :"

echo "$line2"


exit 0

(обратно)

Пример 3-2. Сохранение результата исполнения вложенного блока в файл

#!/bin/bash

# rpm-check.sh


# Запрашивает описание rpm-архива, список файлов, и проверяется возможность установки.

# Результат сохраняется в файле.

#

# Этот сценарий иллюстрирует порядок работы со вложенными блоками кода.


SUCCESS=0

E_NOARGS=65


if [ -z "$1" ]

then

echo "Порядок использования: `basename $0` rpm-file"

exit $E_NOARGS

fi


{

echo

echo "Описание архива:"

rpm -qpi $1 # Запрос описания.

echo

echo "Список файлов:"

rpm -qpl $1 # Запрос списка.

echo

rpm -i --test $1 # Проверка возможности установки.

if [ "$?" -eq $SUCCESS ]

then

echo "$1 может быть установлен."

else

echo "$1 -- установка невозможна!"

fi

echo

} > "$1.test" # Перенаправление вывода в файл.


echo "Результаты проверки rpm-архива находятся в файле $1.test"


# За дополнительной информацией по ключам команды rpm см. man rpm.


exit 0

Книгаго: Искусство программирования на языке сценариев командной оболочки. Иллюстрация № 7 В отличие от групп команд в (круглых скобках), описаных выше, вложенные блоки кода, заключенные в {фигурные скобки} исполняются в пределах того же процесса, что и сам скрипт (т.е. не вызывают запуск дочернего процесса -- subshell).[ 12 ]

{} \;

pathname -- полное имя файла (т.е. путь к файлу и его имя). Чаще всего используется совместно с командой find.

Книгаго: Искусство программирования на языке сценариев командной оболочки. Иллюстрация № 8 Обратите внимание на то, что символ ";", которым завершается ключ -exec команды find, экранируется обратным слэшем. Это необходимо, чтобы предотвратить его интерпретацию.

[ ]

test.

Проверка истинности выражения, заключенного в квадратные скобки [ ]. Примечательно, что [ является частью встроенной команды test (и ее синонимом), И не имеет никакого отношения к "внешней" --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.