Os4

Оператори


страницата се нуждае от дописване/преглеждане


Условен оператор

Той има следния общ вид:
if списък_команди1
then списък_команди2
[elif списък_команди3
then списък_команди4] …
[else списък_команди5]
fi

[] скоби означават, че това в тях може да го има, а може и не. Т.е., ако в else-частта имаме ново условие, изписваме го с elif, ако няма условие, ползваме само else. Самото else накрая обаче може и да липсва, ако нямаме указания какво да се прави в противния случай. fi обаче е задължително за означаване край на оператора.
Ако списъкът команди в if или elif върне код на завършване 0, условието е истина, а ако върне код различен от 0, условието е лъжа.

Пример 1:
if cmp -s f1 f2
then echo "Files f1 and f2 are identical"
else echo "Files f1 and f2 are different"
fi

Пример 2:
if cd dir 2>/dev/null
then echo "Now in dir"
else echo "Can't change to dir"
fi

И в двата примера имаме класическото използване на условния оператор - въвежда се условие, ако е истина се изпълнява then-частта, ако е лъжа се изпълнява else-частта и накрая оператора завършва с fi.
Ето още примери:

Пример 3:
if grep "^student:" /etc/passwd >/dev/null 2>&1
then :
else echo "No user student."
fi

Пример 4:
if who | grep "^student"
then :
else echo "User student is not working."
fi

В примери 3 и 4 операторът връща резултат, само ако условието е лъжа (частта then не прави нищо в случая).

Команда test

Общ вид:
test условие
или
[условие]
Като условието може да е условие за файлове, за низове, за сравнения на числови низове или за логически операции. Ако е едно просто условие, се използва първия вариант, ако са повече от едно или условието е сложно - втория.

Условия за файлове

Ето някои условия за файлове:

  • файл

което е истина, ако файлът съществува;

  • -f файл

което е истина, ако файлът съществува и е обикновен;

  • -d файл

което е истина, ако файлът съществува и е каталог (директория);

  • -c файл

което е истина, ако файлът съществува и е символен специален;

  • -b файл

което е истина, ако файлът съществува и е блоков специален;

  • -L файл

което е истина, ако файлът съществува и е символна връзка;

  • -s файл

което е истина, ако файлът съществува и не е празен;

  • -r файл

което е истина, ако файлът съществува и е достъпен за четене за потребителя, който изпълнява командата test;

  • -w файл

което е истина, ако файлът съществува и е достъпен за писане за потребителя, който изпълнява командата test;

  • -x файл

което е истина, ако файлът съществува и е достъпен за изпълнение за потребителя, който изпълнява командата test;

  • файл1 -nt файл2

което е истина, ако файл1 е по-нов от файл2 според датата на последното изменение;

  • файл1 -оt файл2

което е истина, ако файл1 е по-стар от файл2 според датата на последното изменение.

Условия за низове

Условия за сравнение на числови низове

Условия с логически операци

  • За отрицание на условие се използва: ! условие.
  • Логическата операция "логическо и" има вида: условие1условие2
  • Логическата операция "логическо или" има вида: условие1условие2
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License