Заметки по shell
Взято вот от сюда: http://citforum.ru/programming/shell/
& асинхронное (фоновое) выполнение предшествующей команды;
&& выполнение последующей команды при условии нормального завершения предыдущей, иначе игнорировать;
|| выполнение последующей команды при ненормальном завершении предыдущей, иначе игнорировать.wait [pid] - ожидание завершения процесса
группировка команд:
k1 && {k2; k3}
{k1; k2} &subshell:
(cd ..; ls) ls3.4. Генерация имен файлов.
При генерации имен используют метасимволы: * произвольная (возможно пустая) последовательность символов;
? один произвольный символ;
[...] любой из символов, указанных в скобках перечислением и/или с указанием диапазона;
cat f* выдаст все файлы каталога, начинающиеся с "f";
cat *f* выдаст все файлы, содержащие "f";
cat program.? выдаст файлы данного каталога с однобуквенными расширениями, скажем "program.c" и "program.o", но не выдаст "program.com";
cat [a-d]* выдаст файлы, которые начинаются с "a", "b", "c", "d". Аналогичный эффект дадут и команды "cat [abcd]*" и "cat [bdac]*".cat ${a}prim
c=`expr $a + $b`
c=`expr $x '*' $y`${x-new} в качестве значения "x" будет выдано "new",
${y=new} в качестве значения "у" будет присвоено "new",
${z?new} в качестве значения "z" будет выдано "z: new" и[u@case.net.ru]$ y=${f:=30}; echo "y = $y; f = $f"
y = 30; f = 30
[u@case.net.ru]$ unset f
[u@case.net.ru]$ y=${f-30}; echo "y = $y; f = $f"
y = 30; f =
[u@case.net.ru]$локальные и внешнии переменные:
a=10
set -a a
export a$ set `ifconfig em0|grep inet`
$ echo $2
80.92.110.82echo $0 - имя расчета
echo $? - код завершения
echo $$ - идентификатор последнего процесса
echo $! - идентификатор последнего фонового процесса
echo $* - значения параметров, как строки
echo $@ - значения параметров, как словУСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ: -f file файл "file" является обычным файлом;
-d file файл "file" - каталог;
-с file файл "file" - специальный файл;
-r file имеется разрешение на чтение файла "file";
-w file имеется разрешение на запись в файл "file";
-s file файл "file" не пустой.УСЛОВИЯ ПРОВЕРКИ СТРОК: str1 = str2 строки "str1" и "str2" совпадают;
str1 != str2 строки "str1" и "str2" не совпадают;
-n str1 строка "str1" существует (непустая);
-z str1 строка "str1" не существует (пустая).УСЛОВИЯ СРАВНЕНИЯ ЦЕЛЫХ ЧИСЕЛ: x -eq y "x" равно "y",
x -ne y "x" неравно "y",
x -gt y "x" больше "y",
x -ge y "x" больше или равно "y",
x -lt y "x" меньше "y",
x -le y "x" меньше или равно "y".СЛОЖНЫЕ УСЛОВИЯ:
Реализуются с помощью типовых логических операций: ! (not) инвертирует значение кода завершения.
-o (or) соответствует логическому "ИЛИ".
-a (and) соответствует логическому "И".
