Условные операторы в 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
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@eth1.ru если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Хотите поддержать сайт материально
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......