Вячеслав Вячеславович Ткачев

BASH. Справочное пособие


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

:?значение}

      Использовать указанное значение если она

      установлена, иначе выйти из оболочки.

      $ echo ${c:?125}

      bash: c: 125

      ${переменная :+значение}

      Использовать указанное значение,иначе не

      использовать ничего.

      $ c=file1.txt

      $ echo ${c:+filen.txt}

      filen.txt

      $ echo ${d:+filen.txt}

      $

      ${#переменная} Использовать длину указанной

      переменной.

      $ echo $c

      file1.txt

      $ echo ${#c}

      9

      $ ${#*},${#@} Использовать количество позиционных параметров.

      ${переменная #шаблон}

      Использовать после удаления слева

      теста ,совпадающего с шаблоном. Удалить самый короткий совпадающий фрагмент.

      c=file1.txt

      1.txt

      ${переменная##шаблон} Удалить самый длинный

      совпадающий фрагмент

      $ echo ${c##file}

      1.txt

      ${переменная ##шаблон} То же что и

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

      ${переменная %шаблон}

      ${переменная %%шаблон}

      $ echo ${c%.txt}

      file1

      max@hp:~$ echo ${c%%txt}

      file1.

      ${переменная /шаблон/замена}

      $ data=`date`

      $ echo ${data}

      Чт июн 13 10:56:05 MSK 2019

      $ echo ${data/Чт}

      июн 13 10:56:05 MSK 2019

      ${переменная //шаблон/замена}

      $ echo ${data//Чт июн/Пт июль}

      Пт июль 13 10:56:05 MSK 2019

      ${переменная /#шаблон/замена}

      ${переменная /%шаблон/замена}

      Использовать max@hp:~$ greeting="hello friend"

      $ declare -n message=greeting

      $ echo message

      message

      $ echo $message

      hello friend

      $ message="by now"

      $ echo $greeting

      by now

      $ {переменная@P} Вычислить значение указанной переменной.

      $ echo ${c@P}

      file1.txt

      $

      $ {переменная@Q} Заключить в кавычки значение указанной переменной.

      $ c=file1.txt

      $ echo ${c@Q}

      'file1.txt'

      ${!переменная }

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

      4.3 Косвенные переменные.

      Косвенные переменные-это переменные именующие другие переменные.

      Косвенные переменные создаются по команде

      declare -n

      Пример 1

      $ greeting=privet

      $ echo $greeting

      privet

      $ declare -n message=greeting

      $ echo $message

      privet

      Пример 2 Присвоить через косвенную переменную

      значение основной переменной.

      $ message=otvet

      $ echo $greeting

      otvet

      Пример 3 Применение псевдонима

      $ text=ok

      $ echo $(!text)

      echo $(text=ok)

      4.4 Переменные, встроенные в оболочку.

      Основные переменные.

      $# количество аргументов в командной строке.

      $-Действующие в настоящее время

      параметры,представленные в командной строке.

      $? Выходное значение последней,выполнявшейся

      команды.

      $$ Номер процесса ,присвоенный оболочке.

      $! Номер процесса,присвоенной

      команде,выполнявшейся в фоновом режиме.

      $0 Первое слово, имя команды.

      $n Oтдельные аргументы командной строки,если больше 9 форма ${n}

      $*,$@ Все аргументы командной строки ($1,$2..)

      Пример