Операционная система Free BSD


Базовые возможности командных интерпретаторов


Для определенности, в данной главе будем рассматривать интерпретатор bash. Если вам больше нравится работать и программировать в другой оболочке, можете в принципе пропустить изучение этой главы курса. Но замечу, что базовые возможности разных оболочек примерно одинаковые.

Переменные и подстановка значений

Все переменные в языке shell - текстовые. Их имена должны начинаться с буквы и могут состоять из латинских букв, цифр и знака подчеркивания (_). Bash поддерживает как простые переменные, так и массивы. Для установки переменной используется оператор =:

Для простых переменных <имя>=<значение>

Для массивов <имя>[индекс]=<значение>, либо <имя>=(<значение1> <значение2> : <значениеN>), либо <имя>=([индекс1]=<значение1> [индекс2]=<значение2> : [индексN]=<значениеN>)

Чтобы воспользоваться значением переменной, надо перед ней поставить символ $. Можно также заключить переменную в фигурные скобки {}.

Например:

# hour=14 # echo $hour 14 # hourth=24 # echo $hourth 24 # echo ${hour}th 14th

Двойные кавычки ( " ), одиночные кавычки ( ' ), обратные кавычки ( ` ) Кавычки могут использоваться для создания строк. Например: "Hello, world!" 'Good bye'

Кроме того, кавычки могут отменять действие следующих специальных символов: ` ~ ! # $ % ^ & * ( ) - + = \ | ; ' " , . < > ?

Значения этих специальных символов в строках, заключенных в одиночные кавычки '<строка>' отменяются. В строках, заключенных в двойные кавычки "<строка>" также отменяются значения специальных символов, за исключением ! $ ` \ {. Обратная наклонная черта \ также отменяет действие специальных символов.

Не путайте одиночные и обратные кавычки. Пример: # dat=`date` (здесь стоят обратные кавычки) # echo $dat Mon Jun 05 14:17:20 2000

# dat='date' (здесь стоят одиночные кавычки) # echo $dat date

Конвейеры и списки

Несколько команд могут быть объединены с помощью символов канала |. В этом случае они образуют конвейер. <команда1> | <команда2> | <команда3> :




- Начало -  - Назад -  - Вперед -