banner banner banner
BASH. Справочное пособие
BASH. Справочное пособие
Оценить:
Рейтинг: 0

Полная версия:

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

скачать книгу бесплатно


Options:

–o       restrict OPTNAMEs to those defined for use

with `set -o'

–p       print each shell option with an indication

of its status

–q suppress output (запретить выход).

–s enable (set) each OPTNAME

–u disable (unset) each OPTNAME

$shopt -s extglob

$ man shopt

Нет справочной страницы для shopt

?(шаблон) Совпадение с нулевым или единичным

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

*(шаблон) Совпадение с нулевым или большим

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

+(шаблон)Совпадение с единичным или большим

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

@(шаблон) Точное совпадение с одним экземпляром

заданного шаблона.

! (шаблон) Совпадение с любыми символьными

строками не совпадающими с заданным шаблоном

Пример 1 Создадим файл из одной строки

$ cat >fs2.txt

Hello

^d

$ rm fs?(2).txt; cat fs2.txt

cat: fs2.txt: Нет такого файла или каталога

Пример 2

$ cat >fs01.txt

Allo

$ rm fs*(01).txt; cat fs01.txt

cat: fs01.txt: Нет такого файла или каталога

Пример 3

$ cat >fs_lin.txt

Hello friend

$ rm fs@(_lin).txt; cat fs_lin.txt

cat: fs_lin.txt: Нет такого файла или каталога

Пример 4

$ cat >fs_lin.txt

Hello friend

$ rm fs!(lin).txt; cat fs_lin.txt

rm: невозможно удалить 'fs!(lin).txt': Нет такого файла или каталога

cat: fs_lin.txt: Нет такого файла или каталога

2.4 Совпадение с классами символов.

Класс Совпадающие символы

alnum Буквенно-цифровые

alpha Буквенные

ascii Символы в коде ACII

blank Пробелы и знаки табуляции

cntrl Управляющие

digit Десятичные цифры

graph Непробельные

lower Строчные буквы

print Печатаемые

punct Знаки препинания

space Пробельные

upper Прописные буквы

word То же что и alnum

xdigit Шестнадцатиричные цифры

Пример

Эквивалентом выражения "[a-zA-Z_0-9]" является выражение "[[:alnum:]]"

Выражению "[0-9]" эквивалентно выражение "[[:digit:]]"

Выражению "[a-Z]" эквивалентно регулярное выражение "[[:alpha:]

[01[:alpha:]%] совпадает с 0 ,1 ,любым алфавитным символом или %.

2.5 Раскрытие скобок.

Раскрытие скобок выполняется прежде других видов раскрытия выражений, {} не должны заключаться в кавычки. Подстановка команд при раскрытии скобок игнорируется оболочкой BASH.

Пример 1

$ echo hi{BBB,AAA}there

hiBBBthere,hiAAAthere

Пример2

$ echo a{d,c,b}e

ade ace abe

Пример 3

$ echo 1 to 5 is {1..5}

1 to 5 is 1 2 3 4 5

$ echo 1 to 8 by 2 {1..8}

1 to 8 by 2 1 2 3 4 5 6 7 8

Использование скобок ( ) показано на следующем примере – выполнение группы команд.

$ (date; w;) Результат

Чт 22 июл 2021 08:31:12 MSK

08:31:12 up 3:00, 1 user, load average: 0,02, 0,14, 0,18

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

max tty2 tty2 05:31 2:59m 0.11s 0.10s /usr/libexec/gn

Использование скобок [ ] и (( )) показано на примере простого скрипта.

$ cat >skobki.sh

#!/bin/bash

X=1

while [ $X -lt 5 ]

do

echo "–> $X <–"

X=$(( $X+1 ))

done

exit 0

$ chmod +x skobki.sh

$ ./skobki.sh

–-> 1 <–

–-> 2 <–

–-> 3 <–

–-> 4 <–

2.6 Управляющие последовательности символов.