Условные операторы в Bash
| Введение | |
| if else | |
| Операторы сравнения | |
| -e: Проверка существования файла | |
| Похожие статьи |
Введение
Самое главное - следить за отступами перед и после квадратных скобок.
if else
#!/bin/bash
# Принимаем первый параметр из терминала
mode=$1
echo "start"
if [[ $mode = 1 ]]; then
echo "First"
elif [ $mode = 2 ]; then
echo "Second"
else
echo "Try using different parameter"
fi
Операторы сравнения
-n - строка не ноль
-z - строка null, то есть, имеет нулевую длину
Создадим непустую строку и применим к ней -n и -z
foo="bar";
[ -n "$foo" ] && echo "foo is not null"
foo is not null
[ -z "$foo" ] && echo "foo is null"
Теперь создадим пустую строку
foo="";
[ -n "$foo" ] && echo "foo is not null"
[ -z "$foo" ] && echo "foo is null"
foo is null
Проверка существования файла
Выполняется с помощью опции -e
Рассмотрим директорию sandbox со следующим содержанием.
sandbox/ ├── check_existence.sh └── test.md
vi check_existence.sh
#!/bin/bash if [ -e test.md ] ; then echo "test.md exists" else echo "file doesn't exist" fi
./check_existence.sh
test.md exists
В виде функции
#!/bin/bash check_existence() { if [ -e $1 ] ; then echo "$1 exists" else echo "$1 doesn't exist" fi } check_existence test.md check_existence missing.log
./check_existence.sh
test.md exists
missing.log doesn't exist
Добавим возможность принимать аргументы из командной строки
#!/bin/bash check_existence() { if [ -e $1 ] ; then echo "$1 exists" else echo "$1 doesn't exist" fi } check_existence test.md check_existence missing.log
./check_existence.sh
test.md exists
missing.log doesn't exist
./check_existence.sh /etc/hosts
/etc/hosts exists
./check_existence.sh missing.log
missing.log doesn't exist
./check_existence.sh test.md
test.md exists
Автор статьи: Андрей Олегович
| Bash | |
| Основы Bash | |
| Скрипты | |
| awk | |
| grep | |
| sed | |
| Ошибки Bash | |
| Zsh | |
| Unix |
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги