BASH. Справочное пособие. Вячеслав Вячеславович Ткачев

Чтение книги онлайн.

Читать онлайн книгу BASH. Справочное пособие - Вячеслав Вячеславович Ткачев страница 6

BASH. Справочное пособие - Вячеслав Вячеславович Ткачев

Скачать книгу

файла 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

Скачать книгу