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


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1817, книга: Великое перерождение
автор: Артем Каменистый

Ну, "Великое перерождение" - это еще одна дикая поездка от Каменистого! Люблю его за умение создавать захватывающие и напряженные миры. Главный герой, Гриш, влипает в несчастную аварию, а потом бац - он оказывается в другом теле, в другом мире. И с этого момента начинается адреналин! Он должен адаптироваться к своему новому окружению, избегать опасностей и учиться сражаться. Я обожаю, как Каменистый смешивает экшн и выживание в этой истории. Гриш должен быть хитрым и...

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

Дети небес. Вернор Стефан Виндж
- Дети небес

Жанр: Космическая фантастика

Год издания: 2017

Серия: Звезды новой фантастики

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

Объявляю убийце голодовку. Инна Павлова
- Объявляю убийце голодовку

Жанр: Иронический детектив

Год издания: 2003

Серия: Криминальный талант

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

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

Жанр:

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

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

неизвестно

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

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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


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

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

$file_plaintext

# Декодирование.

(обратно)

37

макроопределение -- это идентификатор, символическая константа, которая представляет некоторую последовательность команд, операций и параметров.

(обратно)

38

Команда userdel завершится неудачей, если удаляемый пользователь в этот момент работает с системой

(обратно)

39

Дополнительную информацию по записи компакт-дисков, вы найдете в статье Алекса Уизера (Alex Wither): Creating CDs, в октябрьском выпуске журнала Linux Journal за 1999 год.

(обратно)

40

Утилита mke2fs, с ключом -c, так же производит поиск поврежденных блоков.

(обратно)

41

Пользователи небольших, десктопных Linux-систем предпочитают утилиты попроще, например tar.

(обратно)

42

NAND -- логическая операция "И-НЕ". В общих чертах она напоминает вычитание.

(обратно)

43

Замещающая команда может быть внешней системной командой, внутренней (встроенной) командой или даже функцией в сценарии.

(обратно)

44

дескриптор файла -- это просто число, по которому система идентифицирует открытые файлы. Рассматривайте его как упрощенную версию указателя на файл.

(обратно)

45

При использрвании дескриптора с номером 5 могут возникать проблемы. Когда Bash порождает дочерний процесс, например командой exec, то дочерний процесс наследует дескриптор 5 как "открытый" (см. архив почты Чета Рамея (Chet Ramey), SUBJECT: RE: File descriptor 5 is held open) Поэтому, лучше не использовать этот дескриптор.

(обратно)

46

В качестве простейшего регулярного выражения можно привести строку, не содержащую никаких метасимволов.

(обратно)

47

[47]Поскольку с помощью sed, awk и grep обрабатывают одиночные строки, то обычно символ перевода строки не принимается во внимание. В тех же случаях, когда производится разбор многострочного текста, метасимвол "точка" будет соответствовать символу перевода строки.

#!/bin/bash


sed -e 'N;s/.*/[&]/' << EOF # Встроенный документ

line1

line2

EOF

# OUTPUT:

# [line1

# line2]


echo


awk '{ $0=$1 "\n" $2; if (/line.1/) {print}}' << EOF

line 1

line 2

EOF

# OUTPUT:

# line

# 1


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


exit 0

(обратно)

48

Подстановка таких имен файлов возможна, но только при условии, что символ точки будет явно присутствовать в шаблоне.

~/[.]bashrc # Не будет соответствовать имени ~/.bashrc

~/?bashrc # То же самое.

# Метасимволы не могут соответствовать символу точки при подстановке имен файлов.


~/.[b]ashrc # Имя ~./bashrc будет соответствовать данному шаблону

~/.ba?hrc # Аналогично.

~/.bashr* # Аналогично.


# Установка ключа "dotglob" отключает такое поведение интерпретатора.

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

(обратно)

49

Имеет тот же эффект, что и именованные каналы (временный файл), фактически, именованные каналы некогда использовались в операциях подстановки процессов.

(обратно)

50

Механизм косвенных ссылок на переменные (см. Пример 34-2) слишком неудобен для передачи аргументов по ссылке.

#!/bin/bash


ITERATIONS=3 # Количество вводимых значений.

icount=1


my_read () {

# При вызове my_read varname,

# выводит предыдущее значение в квадратных скобках,

# затем просит ввести новое значение.


local local_var


echo -n "Введите говое значение переменной "

eval 'echo -n "[$'$1'] "' # Прежнее значение.

read local_var

[ -n "$local_var" ] && eval $1=\$local_var


# Последовательность "And-list": если "local_var" не пуста, то ее значение переписывается в "$1".

}


echo


while [ "$icount" -le "$ITERATIONS" ]

do

my_read var

echo "Значение #$icount = $var"

let "icount += 1"

echo

done


# Спасибо Stephane Chazelas за этот поучительный пример.


exit 0

(обратно)

51

Команда return -- это встроенная команда Bash.

(обратно)

52

Herbert Mayer определяет рекурсию, как "...описание алгоритма с помощью более простой версии того же самого алгоритма..." Рекурсивной называется функция, которая вызывает самого себя.

(обратно)

53

Слишком глубокая рекурсия может вызвать крах сценария.

#!/bin/bash


recursive_function ()

{

(( $1 < $2 )) && recursive_function $(( $1 + 1 )) $2;

# Увеличивать 1-й параметр до тех пор,

#+ пока он не станет равным, или не превысит, второму параметру.

}


recursive_function 1 50000 # Глубина рекурсии = 50,000!

# Само собой -- Segmentation fault.


# Рекурсия такой глубины может "обрушить" даже программу, написанную на C,

#+ по исчерпании памяти, выделенной под сегмент стека.


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


exit 0 # Этот сценарий завершает работу не здесь, а в результате ошибки Segmentation fault.

(обратно)

54

Однако, псевдонимы могут --">

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


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