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

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

Жанры

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}

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

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Господин моих ночей (Дилогия)

Ардова Алиса
Маги Лагора
Любовные романы:
любовно-фантастические романы
6.14
рейтинг книги
Господин моих ночей (Дилогия)

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

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

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2

Барон Дубов 4

Карелин Сергей Витальевич
4. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 4

Имперский Курьер. Том 3

Бо Вова
3. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Имперский Курьер. Том 3

Бестужев. Служба Государевой Безопасности. Книга 5

Измайлов Сергей
5. Граф Бестужев
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга 5

Адвокат Империи 2

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

Баронесса. Эхо забытой цивилизации

Верескова Дарья
1. Проект «Фронтир Вита»
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Баронесса. Эхо забытой цивилизации

Адвокат Империи 7

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

Чехов

Гоблин (MeXXanik)
1. Адвокат Чехов
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Чехов

Крещение огнем

Сапковский Анджей
5. Ведьмак
Фантастика:
фэнтези
9.40
рейтинг книги
Крещение огнем

Невеста клана

Шах Ольга
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Невеста клана