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

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}

      $

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