From: http://f0kp.iplus.ru/ <just_a_user@phayze.com>
Subject: Подсказка по командам shell
Оригинал: http://f0kp.iplus.ru/proj/fb21.html
Сценарии оболочки
#!/bin/sh позволяет ядру знать, что строки в программе будет выполнять
Оболочка Борна (Bourne Shell)
(вы, конечно же, можете определить любую оболочку, которую хотите
использовать)
/dev/da1s2g /home ufs rw,userquota 1 2
*Аналогично, для включения групповых квот используйте опцию groupquota
вместо ключевого слова userquota. Для включения как пользовательских,
так и групповых квот, замените данные следующим образом:
Это делается посредством обратных одиночных кавычек
currentdir = `pwd`
Мы получим значение текущей рабочей директории
currentdir = pwd
У нас будет значение "pwd"
Утверждения If
if [ выражение ]
then
else
fi
Пробелы в [ выражение ] должны быть там!!! В противном случае вы
получите сообщение о синтаксической ошибке
В качестве выражения вы можете использовать:
int1 -eq int2 Эквивалентно
int1 -ne int2 Не эквивалентно
int1 -gt int2 Больше чем
int1 -ge int2 Больше чем, или эквивалентно
int1 -lt int2 Меньше чем
int1 -le int2 Меньше чем, или эквивалентно
string1 = string2 Эквивалентно
string1 != string2 Не эквивалентно
string Строка не полная
-z string Истина, если длина строки равна нулю
-n string Истина, если длина строки не равна нулю.
-d filename Истина, если директория существует
-f filename Истина, если существует как недиректория
-s filename Истина, если содержит по крайней мере один символ
expr1 -a expr2 И
expr1 -o expr2 Или
( expr ) Группирование выражений
пример: if [ "$answer" = "Y" -o "$answer" = "y" ]
Разбиение строк
По умолчанию переменная IFS установлена на пустое пространство.
Конечно же, вы можете его сбросить..
#!/bin/sh
input="this:is:a:test"
printf "nn"
IFS=:
for section in $input
do
printf "$section n"
done