Реферат: Администрирование локальных сетей
Операция |
Описание |
> | Больше |
< | Меньше |
>= | Больше или равно |
<= | Меньше или равно |
>> | Правый битовый сдвиг |
<< | Левый битовый сдвиг |
& | Битовое И |
| | Битовое ИЛИ |
&& | Логическое И |
|| | Логическое ИЛИ |
Например:
% @ r= ( 2 << 4 )
% echo $r
32
Основные операции присвоения в csh
Операция |
Описание |
= | Простое рисвоение а = b |
+= | a = a + b |
-= | a = a - b |
*= | a = a * b |
/= | a = a / b |
%= | a = a % b |
Постфиксные операции
К последним относятся операции ++ и --
% @ a=10
% @ a++
% echo $a
11
Основные файловые операции
Виражения в csh могут возвращать значение в зависимости от наличия или отсутствия файла, прав доступа к нему, и.т.п. Для этого используется следующий синтаксис:
-file_test filename
где file_test и filename могут принимать следующие значения
file_test |
описание |
d | Является ли файл директорией ? |
e | Существует ли файл ? |
f | Это обычный файл ? |
o | Являюсь ли я его собственником ? |
r | Имеются ли права на чтение из файла ? |
w | Имеются ли права на запись в файл |
x | Можно ли исполнять этот файл ? |
Z | Пустой ли файл |
2.3.5 Задания
Каждый раз когда одна или больше команд (например связанные через пайп, или последовательно) выполняються шелл создает один блок команд назывемый заданием. Фактически каждая строка введенная в строке шелла является заданием. Задание может исполняться также в фоновом режиме если при запуске в конце стоял символ &. В этом случае после запуска шелл выдаст номер задания в своей таблице заданий и номер процесса. Просмотреть таблицу активных в данный момент заданий можно воспользовавшись командой jobs . После завершения фонового процесса шелл проинформирует пользователя об этом.
% sleep 10 &
[1] 73059
% jobs
[1] + Running sleep 10
% ps
PID TTY TIME COMMAND
71453 pts/2 0:00.03 -sh (csh)
73059 pts/2 0:00.00 sleep 10
73061 pts/2 0:00.00 ps
…. Спустя 10 секунд ….
%
[1] Done sleep 10
2.3.6 Скрипты
сsh крипты могут как и Bourne Shell скрипты быть запущены двумя способами. Либо
csh script_file arg1 arg2 ….
либо установив атрибут исполняемости на файл и запустив его
chmod +x script_file
./script_file arg1 arg2 ….
При этом первая строчка должна содкржать полный путь к интерпретатору с префиксом #! , в нашем случае она должна выглядеть так: #!/usr/bin/csh . Без этой строчки система в качестве интерпретатора скрипта запустит Bourne Shell что приведет к ошибке.
При запуске csh помещает аргументы скрипта в массив argv доступ к которым возможее через argv[1], argv[2], … Аргумента argv[0] не существует, вместо этого имя скрипта помещается в аргумент $0.
Для проверки установлена ли данная переменная можно воспользоваться конструкцией
$?variable
Чтобы узнать сколько значений хранит переменная нужно использовать следующий синтаксис:
$#variable
Для доступа к компонентам переменной необходимо следовать следующему правилу:
$variable[componet_number]
Также как и в Bourne Shell возможно использование переменных $n вместо argvn и $* вместо $argv. В отличии от команды read в Bourne Shell csh использует конструкцию $< для интерактивонго ввода.
Все вышесказанное иллюстрируется на следующих примерах:
% echo $#var1
var1: Undefined variable.
% set var1=a
% echo $#var1
1
% set var1=(a b c)
% echo $#var1
3
% echo $var1[1]
a
% echo $var1[1-3]
a b c
% set a=($<)
xxx
% echo $a
xxx
Еще одно отличие csh от Bourne Shell заключается в том что с помощью фигурных скобок { } можно проверять завершилась ли нормально команда помещенная в эти скобки. Например, следующий скрипт:
#!/usr/bin/csh
if ({ cat /tmp/aaa }) then
echo OK
endif
в случае успешного вывода содержимого файла /tmp/aaa напечатает в конец фразу OK.
2.3.7 Управляющие структуры скриптов.
В виду того что все управляющие структуры csh очень похожи на аналогичные в Bourne Shell кратко остановимся лишь на их синтаксисе. По своему синтаксису они очень близки с аналогисными командами языка программирования С.
Условный оператор
if ( expression ) then
command1
command2
…
else
command1
command2
…
endif
Если требуется запуск лишь одной команды то endif можно не ставить:
if ( expression ) command
Цикл foreach
Этот цикл является полным аналогом цикла for Bourne Shell.
foreach index_variable (loop_values)
command1
command2
….
end
Если в качестве команды внутри цикла встречается команда break то выполнение цикла прерывается, если команда continue то продолжается но уже со следующим из значений параметра взятым из loop_values.
Цикл while
while (expression )
command1
command2
…
end
полный аналог цикла while в Bourne shell.
Команда switch
Очень похожа на аналогичный оператор в языке С, является аналогом команды case в Bourne shell
switch ( word )
case string1:
command1
command2
….
breaksw
case string2:
command1
command2
….
breaksw
…..
default:
command1
command2
…
endsw
Команда безусловного перехода goto
label:
command1
command2
…
goto label
осуществляет переход на команду следующую за меткой указаной в команде (в данном случае на command1).
Обработка прерываний
onintr label
Эта команда позволяет обрабатывать прерывания скриптов. При выполнении прерывания она выполняет переход на команду стоящей непосредственно за меткой label (аналогично выполнению goto label)
Korn Shell и POSIX shell
2.4.1 Общее знакомство с шеллами
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51