Програмування BASH

Bash, якщо -e та -s та інші оператори тестування файлів

Bash, якщо -e та -s та інші оператори тестування файлів

Під час роботи з файлами в будь-якій операційній системі користувач повинен перевірити ці файли на певні аспекти, такі як їх право власності, права доступу, вміст, існування тощо. Ці аспекти можна зрозуміти, поєднуючи оператор “якщо” з різними операторами тестування файлів у 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. Використовуючи ці оператори тестування файлів, користувачеві стає дуже зручно працювати з файлами без будь-яких потенційних труднощів. Існують також деякі інші оператори тестування файлів, які можна використовувати для різних цілей. Однак ті, які обговорюються в цій статті, найчастіше використовуються.

Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Кращі ігри командного рядка для Linux
Командний рядок - це не просто ваш найбільший союзник при використанні Linux, він також може бути джерелом розваг, оскільки ви можете використовувати ...
Кращі програми для картографування геймпадів для Linux
Якщо ви любите грати в ігри на Linux із геймпадом замість типової системи введення клавіатури та миші, є кілька корисних програм для вас. Багато ігор ...