Чтение онлайн

на главную - закладки

Жанры

BASH. Справочное пособие
Шрифт:

ls: невозможно открыть каталог '/root/': Отказано в доступе.

Направить стандартный данных в заданный file1,

стандартный вывод ошибок в указанный file2

Направить стандартный вывод данных и ошибок в

стандартный вывод, так и в заданные файлы.

сmd 2 >&1 |tee файлы или cmd |& tee файлы

Пример 4

$ pwd; ls -l /root/ 2>&1 |tee ls3

/home/max1

ls: невозможно открыть каталог '/root/': Отказано

в доступе.

$ cat ls3

ls:

невозможно открыть каталог '/root/':Отказано

в доступе.

2.11 Сохранение дескрипторов файлов в переменных.

Допускается указывать имя переменной вместо

числового обозначения дескриптора.

Пример. Нахождение дескриптора файла.

$ exec 4>file;echo "OK">&4; cat ./file

OK

max@hp:/dev/fd$ ls

0 1 2 255 4

max@hp:/dev/fd$ cat 4

OK

Пример использования дескрипторов числом более 9

$ mv f1.txt f1

$ echo f1 {f1fd}>xyz

f1

$ echo $f1fd

11

$ cd /dev/fd

max@hp:/dev/fd$ ls

0 1 11 2 255 4

max@hp:/dev/fd$ echo "Privet">&11

max@hp:/dev/fd$ cat 11

Privet Дескриптор файла,сохраненный в переменной оболочки может быть использован в сценарии.

2.12 Специальные имена файлов.

/dev/stdin Дубликат дескриптора файла 0

/dev/stdout Дубликат дескриптора файла 1

/dev/stderr Дубликат дескриптора файла 2

/dev/fd/<n> Дубликат дескриптора файла <n>

/dev/tcp/<host>/<port> или /dev/udp/<host>/<port>

Оболочка Bash устанавливает соединение с указанным хостом через заданный порт, используя полученный в итоге дескриптор файла при переадресации ввода-вывода.

~/Документы$ find -print >filelist 2>no_access

Обнаруживаемые файлы направляются в файл filelist, а сообщения об ошибках в файл no_access

Проверка

~/Документы$ cat filelist

.

./Posix1.doc

./script

./script/sc01.sh

./no_access # новый файл

./rus2.doc

./filelist # новый файл

./otchet.doc

Глава 3.Функции.

Функция совокупность команд, выполняемых в

сценарии оболочки.

Синтаксис функции – имя { код-тело функции

} [ виды переадресации]

Обращение к функции происходит по имени. При выполнении функции не создается нового процесса. Она выполняется в среде соответствующего процесса. Аргументы функции становятся ее позиционными параметрами; имя функции – ее нулевой параметр. Прервать выполнение функции можно оператором "return [n]", где (необязательное) "n" – код возврата.

Функции вызываются таким же образом, как и

команды. Если

используется ключевое слово function,то указывать после имен необязательно

Пример создания простой функции с именем privet.

$ if [ "$USER"=max ]; then

> privet {

> echo "Privet Max";}

> fi

Запускаем функцию

$ privet

Результат

Privet Max

Характерно что функцию можно запускать многократно, результат будет тот же.

Функция в скрипте.

Функция fatal -выдать сообщение о неисправимой ошибке и прервать исполнение.

Пример 2

Создадим простой скрипт c функцией fatal.

$ cat >func1.sh

#!/bin/sh

fatal {

echo "$0: fatal error:" "$@" >&2

exit 1

}

if [ $# = 0 ]

then

fatal not enough arguments

fi

Проверка

$ sh func1.sh

func1.sh: fatal error: not enough arguments

Пример 3

$ cat >myscript.sh

#!/bin/bash

function myfunc {

read -p "Enter a value: " value

echo "adding value"

return $(( $value + 10 ))

}

myfunc

echo "The new value is $?"

Запускаем скрипт

$ ./myscript.sh

bash: ./myscript.sh: Отказано в доступе

$ chmod +x myscript.sh

$ ./myscript.sh

Enter a value: 10

adding value

The new value is 20

Пример 4

$ cat run.sh

doSam {

echo "magic"

return 0

}

if doSam;then

echo "Its true"

fi

$ sh run.sh

magic

Its true

В этом случае return 0 означает true, когда

return 1 в традиционном булевом смысле означает

false.

Глава 4.Переменные.

Переменные -это ячейка памяти,содержащаяся в себе

определенные данные. Имена переменных не должны

начинаться с цифры.

4.1 Присваивание значений переменным.

Значения присваиваются переменным с помощью операции = Присваиваемое значение не должно отделяться пробелами от имени переменной.

В одной строчке можно присвоить значение сразу

нескольким переменным.

$ firstname=Max lastname=Corn

$ echo $firstname; echo $lastname

Max

Corn

если значение по команде declare -i , то правая часть как вырражение

$ i=3+5 ;echo $i

3+5

$ declare -i jj; jj=5+3; echo $jj

8

4.2 Подстановка переменных.

Установить значение переменной,проверить.

$ a=123; echo $a;

123

$ echo {$a}

{123}

$ echo {\$a};

{$a}

echo {'$'$a}

{$123}

Поделиться:
Популярные книги

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Легионы во Тьме 2

Владимиров Денис
10. Глэрд
Фантастика:
боевая фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Легионы во Тьме 2

Хозяин Стужи 3

Петров Максим Николаевич
3. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи 3

Черный дембель. Часть 3

Федин Андрей Анатольевич
3. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 3

Сонный лекарь 4

Голд Джон
4. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 4

Кодекс Охотника. Книга XXXIX

Сапфир Олег
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX

Хозяин оков VI

Матисов Павел
6. Хозяин Оков
Фантастика:
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Хозяин оков VI

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Изгой Проклятого Клана. Том 5

Пламенев Владимир
5. Изгой
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Изгой Проклятого Клана. Том 5

Антимаг его величества. Том II

Петров Максим Николаевич
2. Модификант
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Антимаг его величества. Том II

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Око василиска

Кас Маркус
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Око василиска

Лекарь Империи 10

Карелин Сергей Витальевич
10. Лекарь Империи
Фантастика:
городское фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 10

Сапер

Вязовский Алексей
1. Сапер
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.29
рейтинг книги
Сапер