Як перевірити, чи існує файл або каталог у сценарії Bash Shell

Перевірка, чи існує файл або каталог із сценарію Bash

Bash використовується для автоматизації регулярно виконуваних команд у Linux. Команди, призначені для операцій з файлами/каталогами, використовуються досить часто, і зазвичай, перш ніж виконати таку команду, нам потрібно перевірити, чи існує конкретний файл або каталог. Давайте подивимося, як виконати цю перевірку.

Синтаксис і використання

Файли

Щоб перевірити, чи існує файл, використовуйте такий синтаксис:

[ -f ]

Вираз [ -f ] повертає 0, тобто успіх, якщо існує, а якщо не існує, повертає ненульовий статус. Як правило, це використовується як умова в якщо заяву.

якщо [ -f ], то fi

Щоб заперечувати повернуте значення, просто передувати -f з оператором заперечення (!).

якщо [ ! -f ] потім fi

У цьому випадку умова буде задовольняти, якщо файл не існує, оскільки повернутий ненульовий статус (false) буде скасовано й вважатися 0 (істина).

Зауважте, що якщо файл, який потрібно перевірити, не існує в поточному каталозі, а існує в якомусь іншому каталозі, потрібно вказати повний шлях до файлу, а не лише ім’я файлу.

Довідники

Синтаксис, що використовується для перевірки файлів, використовується для перевірки каталогів.

[ -d ]

Подібно до оператора для файлів, цей оператор повертає 0, тобто успіх, якщо каталог існує, і відмінний від нуля, тобто повертається статус відмови, якщо він не існує. Це також зазвичай використовується в якщо умова заяви.

якщо [ -d ], то fi

Щоб скасувати повернутий статус, передуйте -d з оператором заперечення (!).

якщо [ ! -d ] потім fi

У цьому випадку умова задовольнить (статус 0), якщо каталог не існує, і зазнає невдачі (статус відмінний від нуля), якщо каталог існує.

Як згадувалося раніше для файлів, якщо каталог, який потрібно перевірити, існує в іншому місці, а не в поточному каталозі, потрібно ввести весь шлях до каталогу, а не лише ім’я каталогу.

💡 Синтаксис дужок ( [...] ), що використовується тут, насправді називається командою Linux випробування. Варіанти -f і -d особливості цієї команди. Для отримання додаткової інформації дивіться сторінку посібника з тестування ( тест людини ).

Перевірка зі сценарію Bash

У наведених вище прикладах ми використовували синтаксис безпосередньо на терміналі. Оболонка щоразу, коли вона зустрічає цикл або умовний оператор (якщо у нашому випадку), він продовжує запит і дозволяє користувачеві ввести блок продовження.

Той самий синтаксис можна використовувати всередині сценарію Bash.

The #!/bin/bash на початку вказує інтерпретатор, який буде використовуватися під час виконання файлу. Хоча Bash є найбільш часто використовуваною оболонкою в наш час, деякі користувачі віддають перевагу оболонкам, як zsh, який слід вказати замість bash на початку цього файлу.

Щоб надати дозволи на виконання для цього файлу запустіть:

chmod +x test.sh

нарешті, щоб виконати файл, запустити:

./test.sh
Категорія: Linux