Условные операторы в 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

[andrei@localhost sandbox]$ ./check_existence.sh /etc/hosts
/etc/hosts exists
[andrei@localhost sandbox]$ ./check_existence.sh missing.log
missing.log doesn't exist
[andrei@localhost sandbox]$ ./check_existence.sh test.md
test.md exists
Похожие статьи
Bash
Основы Bash
alias: Псевдонимы
Bash Scripting
-eq -gt …: Операторы сравнения
if else: Условные операторы
Цикл while
date: Дата
Переход на новую строку
Арифметические операции
sftp: Передать файл или пароль в Bash скрипте
Мониторинг потребления памяти
Работа с файлами в директории
awk
grep
sed
Ошибки Bash
Zsh