Під час роботи з файлами в будь-якій операційній системі користувач повинен перевірити ці файли на певні аспекти, такі як їх право власності, права доступу, вміст, існування тощо. Ці аспекти можна зрозуміти, поєднуючи оператор “якщо” з різними операторами тестування файлів у Bash. "If -e" та "if -s" - це такі оператори в Bash, які використовуються для перевірки існування файлу. Різниця між ними полягає в тому, що перший лише перевіряє існування файлу, тоді як другий також перевіряє, чи є у цьому файлі вміст чи ні. Сьогодні ми спробуємо зрозуміти використання цих двох операторів, поряд з декількома іншими операторами тестування файлів у Bash.
Примітка: Для демонстрації використання операторів тестування файлів у Bash ми використали Linux Mint 20.
Приклади використання операторів тестування файлів у Bash
Існують різні способи використання операторів тестування файлів “if -e” та “if -s”. Щоб пояснити їх використання, ми поділимося з вами кількома прикладами.
Приклад використання оператора “if -e”
Для використання оператора “if -e” в Bash вам потрібно виконати такі дії:
Спочатку ми створили порожній текстовий файл з іменем Test.txt у нашому домашньому каталозі. Потім ми створили файл bash з назвою FileTestOperators.sh в тому ж каталозі. Після створення цього файлу ми набрали у нашому файлі сценарій, показаний на наступному зображенні. У цьому скрипті bash оголошено змінну з назвою “файл” і призначено їй наш текстовий файл з назвою Test.txt як його значення. Тоді ми маємо оператор “if -e”, який видає “true” вихід, якщо існує якийсь вказаний файл.
Для тестування нашого сценарію ми його запустимо, використовуючи команду, зазначену нижче:
$ bash FileTestOperators.ш
У нашому випадку, оскільки текстовий файл існував, саме тому результат нашого сценарію буде істинним, як показано на наступному зображенні:
Приклад використання оператора “if -s”
Для використання оператора “if -s” у Bash слід виконати наведені нижче дії:
У цьому прикладі наш скрипт bash такий же, як ми використовували вище. Ми щойно змінили твердження “якщо -e” на “if -s”. Крім того, ми використовували той самий порожній текстовий файл Test.txt.
Тепер, коли ми запускаємо цей сценарій, результат буде хибним, оскільки оператор “if -s” повертає true, якщо файл існує, а також якщо він не порожній. Оскільки в нашому випадку, хоча файл існував, він все ще був порожнім, тому наш вихід виявився помилковим, як показано на наступному зображенні:
Щоб зробити цей прапор істинним, ми напишемо фіктивний текст у наш текстовий файл, як показано нижче:
Потім ми знову запускаємо наш скрипт bash, і цього разу результат буде істинним, як показано на наступному зображенні, оскільки в текстовому файлі зараз є текст.
Приклади використання інших операторів тестування файлів
Крім операторів “if -e” та “if -s”, є й інші оператори тестування файлів. Нижче ми поділимося з вами деякими найважливішими операторами тестування файлів, крім тих, що розглянуті вище.
Приклад використання оператора “if -d”
Для використання оператора “if -d” у Bash слід виконати наведені нижче дії:
У цьому прикладі наш скрипт bash такий же, як ми використовували вище. Ми щойно змінили твердження "якщо -s" на "if -d". Крім того, ми використовували той самий текстовий файл Test.txt.
Оператор “if -d” повертає true, якщо ваш файл є каталогом, інакше він буде помилковим. Оскільки наш текстовий файл не був каталогом, то результат буде помилковим, як показано на наступному зображенні:
Приклад використання оператора “if -h”
Для використання оператора “if -h” у Bash вам потрібно виконати такі дії:
У цьому прикладі наш скрипт bash такий же, як ми використовували вище. Ми щойно змінили твердження “if -d” на “if -h”. Однак ми цього разу для тестування використовували інший файл, який насправді був символічним посиланням NewBash.ш.
Оператор “if -h” повертає true, якщо ваш файл є символічним посиланням, інакше він буде помилковим. Оскільки наш тестовий файл був символічним посиланням, результат буде істинним, як показано на наступному зображенні:
Приклад використання оператора “if -r”
Для використання оператора “if -r” у Bash вам потрібно виконати такі дії:
У цьому прикладі наш скрипт bash такий же, як ми використовували вище. Ми щойно змінили вислів “if -h” на “if -r”. Крім того, ми використовували той самий текстовий файл Test.txt.
Вихід оператора “if -r” буде істинним, якщо поточний користувач зможе прочитати файл, інакше він буде помилковим. Оскільки наш текстовий файл ми читали, отже, результат буде істинним, як показано на наступному зображенні:
Таким же чином, ви можете використовувати оператори “if -w” та “if -x”, щоб перевірити, чи є файл для запису та виконання поточним власником відповідно.
Приклад використання оператора “if -O”
Для використання оператора “if -O” в Bash вам слід виконати наведені нижче дії:
У цьому прикладі наш скрипт bash такий же, як ми використовували вище. Ми щойно змінили оператор “if -r” на “if -O”. Крім того, ми використовували той самий текстовий файл Test.txt.
Вихід оператора “if -O” буде істинним, якщо поточний користувач володіє файлом, інакше він буде помилковим. Оскільки наш текстовий файл належав нам, отже, результат буде істинним, як показано на наступному зображенні:
Висновок
У цій статті читач ознайомився з використанням різних операторів тестування файлів у Bash за допомогою операційної системи Linux. Використовуючи ці оператори тестування файлів, користувачеві стає дуже зручно працювати з файлами без будь-яких потенційних труднощів. Існують також деякі інші оператори тестування файлів, які можна використовувати для різних цілей. Однак ті, які обговорюються в цій статті, найчастіше використовуються.