2 - 3 Синтаксис BASH
.pdfПримеры
1:wc -w < topic.txt
2:find /etc -name httpd.conf 2> /dev/null
3:run_long_program > /dev/null 2>&1 &
4:cat myfile | grep Linux | wc -l
5:ps -ef | grep myproc | grep -v grep
6:ps -ef | grep myproc | awk '{print $2}'
Параметры и переменные
•позиционные параметры
•специальные параметры
•переменные оболочки, окружения
$1, $2 .. $9 |
Позиционные параметры |
|
|
|
|
$# |
Число параметров |
|
|
|
|
$? |
Код возврата последнего синхронно-выполненного |
|
процесса |
||
|
||
|
|
|
$$ |
PID текущего интерпретатора |
|
|
|
|
$! |
PID последнего процесса, запущенного в фоновом |
|
режиме |
||
|
||
|
|
|
$* |
Все параметры интерпретатора. При заключении в кавычки |
|
воспринимаются как единое слово |
||
|
||
|
|
|
$@ |
Все параметры интерпретатора. При заключении в кавычки |
|
воспринимаются как отдельные слова |
||
|
||
|
|
Именованные
переменные
$ cdir=‘pwd’ $ echo $cdir /home/user
$ cd /usr/bin $ pwd /usr/bin
$ cd ${cdir} $ pwd /home/user
HOME |
Домашний каталог |
|
пользователя |
||
|
||
|
|
|
PATH |
Поисковый путь |
|
|
|
|
LOGNAME |
Имя пользователя |
|
|
|
|
SHELL |
Текущий интерпретатор |
|
|
|
|
RANDOM |
Случайное число |
|
|
|
|
IFS |
Символ-разделитель |
|
|
|
Русская рулетка
kill -9 $RANDOM
Выполнение команды
1.Анализ синтаксиса команды
2.Подстановки
3.Назначение потоков ввода-вывода
4.Поиск команды
Подстановки
1.раскрытие скобок {}
2.~-подстановки
3.подстановка параметров и переменных
4.подстановка команд
5.арифметичекие подстановки
6.разделение слов
7.замена шаблонов имен файлов (*,[abc],?)
8.удаление экранирующих символов (\,`,")
mkdir /usr/local/src/bash/{old,new,dist,bugs} chgrp www /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
allfiles=`find .`
echo $(( 2 + 3 * 5 ))
ls *.jpg
Специальные символы
` ~ ! @ # $ % ^ & * ( ) _ — [ ] { } : ; ' " / \ > <