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


Авторские права

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

Здесь можно скачать бесплатно "Мендель Купер - Искусство программирования на языке сценариев командной оболочки" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Мендель Купер - Искусство программирования на языке сценариев командной оболочки
Рейтинг:
Название:
Искусство программирования на языке сценариев командной оболочки
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

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



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






-u

set-user-id (suid) флаг для файла установлен

Установленный флаг suid приводит к изменению привилегий запущенного процесса на привилегии владельца исполняемого файла. Исполняемые файлы, владельцем которых является root, с установленным флагом set-user-id запускаются с привилегиями root, даже если их запускает обычный пользователь[ 16 ]. Это может оказаться полезным для некоторых программ (таких как pppd и cdrecord), которые осуществляют доступ к аппаратной части компьютера. В случае отсутствия флага suid, программы не смогут быть запущены рядовым пользователем, не обладающим привилегиями root.

-rwsr-xr-t 1 root 178236 Oct 2 2000 /usr/sbin/pppd

Файл с установленным флагом suid отображается с включенным флагом s в поле прав доступа.

-k

флаг sticky bit (бит фиксации) установлен

Общеизвестно, что флаг "sticky bit" -- это специальный тип прав доступа к файлам. Программы с установленным флагом "sticky bit" остаются в системном кэше после своего завершения, обеспечивая тем самым более быстрый запуск программы[ 17 ]. Если флаг установлен для каталога, то это приводит к ограничению прав на запись. Установленный флаг "sticky bit" отображается в виде символа t в поле прав доступа.

drwxrwxrwt 7 root 1024 May 19 21:26 tmp/

Если пользователь не является владельцем каталога, с установленным "sticky bit", но имеет право на запись в каталог, то он может удалять только те файлы в каталоге, владельцем которых он является. Это предотвращает удаление и перезапись "чужих" файлов в общедоступных каталогах, таких как /tmp.

-O

вы являетесь владельцем файла

-G

вы принадлежите к той же группе, что и файл

-N

файл был модифицирован с момента последнего чтения

f1 -nt f2

файл f1 более новый, чем f2

f1 -ot f2

файл f1 более старый, чем f2

f1 -ef f2

файлы f1 и f2 являются "жесткими" ссылками на один и тот же файл

!

"НЕ" -- логическое отрицание (инверсия) результатов всех вышеприведенных проверок (возвращается true если условие отсутствует).

Пример 7-4. Проверка "битых" ссылок

#!/bin/bash

# broken-link.sh

# Автор Lee Bigelow <[email protected]>

# Используется с его разрешения.


#Сценарий поиска "битых" ссылок и их вывод в "окавыченном" виде

#таким образом они могут передаваться утилите xargs для дальнейшей обработки :)

#например. broken-link.sh /somedir /someotherdir|xargs rm

#

#На всякий случай приведу лучший метод:

#

#find "somedir" -type l -print0|\

#xargs -r0 file|\

#grep "broken symbolic"|

#sed -e 's/^\|: *broken symbolic.*$/"/g'

#

#но это не чисто BASH-евский метод, а теперь сам сценарий.

#Внимание! будьте осторожны с файловой системой /proc и циклическими ссылками!

##############################################################


#Если скрипт не получает входных аргументов,

#то каталогом поиска является текущая директория

#В противном случае, каталог поиска задается из командной строки

####################

[ $# -eq 0 ] && directorys=`pwd` || directorys=$@


#Функция linkchk проверяет каталог поиска

#на наличие в нем ссылок на несуществующие файлы, и выводит их имена.

#Если анализируемый файл является каталогом,

#то он передается функции linkcheck рекурсивно.

##########

linkchk () {

for element in $1/*; do

[ -h "$element" -a ! -e "$element" ] && echo \"$element\"

[ -d "$element" ] && linkchk $element

# Само собой, '-h' проверяет символические ссылки, '-d' -- каталоги.

done

}


#Вызов функции linkchk для каждого аргумента командной строки,

#если он является каталогом. Иначе выводится сообщение об ошибке

#и информация о порядке пользования скриптом.

################

for directory in $directorys; do

if [ -d $directory ]

then linkchk $directory

else

echo "$directory не является каталогом"

echo "Порядок использования: $0 dir1 dir2 ..."

fi

done


exit 0

Пример 28-1, Пример 10-7, Пример 10-3, Пример 28-3 и Пример A-2 так же иллюстрируют операции проверки файлов.

7.3. Операции сравнения

сравнение целых чисел

-eq

равно

if [ "$a" -eq "$b" ]

-ne

не равно

if [ "$a" -ne "$b" ]

-gt

больше

if [ "$a" -gt "$b" ]

-ge

больше или равно

if [ "$a" -ge "$b" ]

-lt

меньше

if [ "$a" -lt "$b" ]

-le

меньше или равно

if [ "$a" -le "$b" ]

<

меньше (внутри двойных круглых скобок )

(("$a" < "$b"))

<=

меньше или равно (внутри двойных круглых скобок)

(("$a" <= "$b"))

>

больше (внутри двойных круглых скобок)

(("$a" > "$b"))

>=

больше или равно (внутри двойных круглых скобок)

(("$a" >= "$b"))

сравнение строк

=

равно

if [ "$a" = "$b" ]

==

равно

if [ "$a" == "$b" ]

Синоним оператора =.

[[ $a == z* ]] # истина, если $a начинается с символа "z" (сравнение по шаблону)

[[ $a == "z*" ]] # истина, если $a равна z*


[ $a == z* ] # имеют место подстановка имен файлов и разбиение на слова

[ "$a" == "z*" ] # истина, если $a равна z*


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


!=

не равно

if [ "$a" != "$b" ]

Этот оператор используется при поиске по шаблону внутри [[ ... ]].

<

меньше, в смысле величины ASCII-кодов

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

Обратите внимание! Символ "<" необходимо экранировать внутри [ ].

>

больше, в смысле величины ASCII-кодов

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

Обратите внимание! Символ ">" необходимо экранировать внутри [ ].

См. Пример 25-6 относительно применения этого оператора сравнения.

-z

строка "пустая", т.е. имеет нулевую длину

-n

строка не "пустая".

Оператор -n требует, чтобы строка была заключена в кавычки внутри квадратных скобок. Как правило, проверка строк, не заключенных в кавычки, оператором ! -z, или просто указание строки без кавычек внутри квадратных скобок (см. Пример 7-6), проходит нормально, однако это небезопасная, с точки зрения отказоустойчивости, практика. Всегда заключайте проверяемую строку в кавычки[ 18 ].

Пример 7-5. Операции сравнения

#!/bin/bash


a=4

b=5


# Здесь переменные "a" и "b" могут быть как целыми числами, так и строками.

# Здесь наблюдается некоторое размывание границ

#+ между целочисленными и строковыми переменными,

#+ поскольку переменные в Bash не имеют типов.


# Bash выполняет целочисленные операции над теми переменными,

#+ которые содержат только цифры

# Будьте внимательны!


echo


if [ "$a" -ne "$b" ]

then

echo "$a не равно $b"

echo "(целочисленное сравнение)"

fi


echo


if [ "$a" != "$b" ]

then

echo "$a не равно $b."

echo "(сравнение строк)"

# "4" != "5"

# ASCII 52 != ASCII 53

fi


# Оба варианта, "-ne" и "!=", работают правильно.


echo


exit 0

Пример 7-6. Проверка -- является ли строка пустой

#!/bin/bash

# str-test.sh: Проверка пустых строк и строк, не заключенных в кавычки,


# Используется конструкция if [ ... ]


# Если строка не инициализирована, то она не имеет никакого определенного значения.

# Такое состояние называется "null" (пустая) (это не то же самое, что ноль).


if [ -n $string1 ] # $string1 не была объявлена или инициализирована.

then

echo "Строка \"string1\" не пустая."

else

echo "Строка \"string1\" пустая."

fi

# Неверный результат.

# Выводится сообщение о том, что $string1 не пустая,

#+не смотря на то, что она не была инициализирована.


echo


# Попробуем еще раз.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

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


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

Все книги автора Мендель Купер

Мендель Купер - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

А что Вы думаете о книге? Оставьте Ваш отзыв.