Основна увага в цьому посібнику полягає в обговоренні існування файлу у вашій системі через скрипт bash:
Як перевірити наявність файлів за допомогою скриптів bash:
1) Ввівши ім’я файлу в терміналі:
По-перше, нам потрібно створити файл сценарію bash, використовуючи згадану нижче команду:
$ touch testfile.шНазва створеного мною файлу - «testfile.ш ",".sh ”вказує файл сценарію оболонки:
Відкрийте “тестовий файл.sh ”у будь-якому текстовому редакторі. Потім напишіть сценарій, збережіть його, натиснувши “зберегти”.
Одним із способів є пошук файлу, запитуючи ім’я файлу у користувача в терміналі.
Використовуйте “-f”, Щоб перевірити наявність файлу.
Напишіть наведений нижче сценарій:
#!/ bin / bashecho "Введіть своє ім'я файлу"
прочитати newfile1
якщо [-f "$ newfile1"]
тоді
echo "Файл знайдено"
ще
echo "Файл не знайдений"
fi
Поверніться до терміналу та запустіть файл для друку:
./ ім'я файлу.шПовідомлення про заборону дозволу відображатиметься в терміналі.
Зробіть його виконуваним, виконавши згадану нижче команду:
$ chmod + x тестовий файл.ш
Введіть ім'я файлу, і він надрукує вихідні дані:
2) Ввівши ім’я файлу під час написання сценарію:
Ще один спосіб знайти файл, вказавши ім'я файлу під час написання сценарію. У нас є три способи перевірити наявність файлу. Перший використовує команду "test", другий використовує "if" з виразом у квадратних дужках, а третій також має "if", але подвійні квадратні дужки, як зазначено нижче:
- “Тест ВИРАЗ."
- “Якщо [ВИРАЗ]]
- “Якщо [[ВИРАЗ]]”
Давайте розберемося в цьому на прикладах:
1) тест [вираз]
Скопіюйте заданий сценарій і вставте його в редактор, збережіть:
ім'я файлу = файл1
якщо тест -f "$ filename";
тоді
echo "$ файл знайдено."
ще
echo "$ файл не знайдено"
fi
Вихід:
Оскільки у моєму каталозі такого файлу немає, тому в коді відображається повідомлення «Файл не знайдено».
2) якщо [Вираз]
Скопіюйте наступний сценарій, щоб перевірити, чи існує файл чи ні:
#!/ bin / bashім'я файлу = myfile.txt
якщо [-f "$ filename"];
тоді
echo "$ filename знайдено."
ще
echo "ім'я файлу не знайдено"
fi
Вихід:
3) якщо [[Вираз]]
Скопіюйте написаний нижче сценарій і вставте його в термінал:
#!/ bin / bashім'я файлу = тестовий файл
якщо [[-f "$ filename"]];
тоді
echo "$ filename знайдено."
ще
echo "$ filename не знайдено"
fi
Вихід:
Щоб перевірити каталог:
3) Ввівши назву каталогу під час написання сценарію
Використовувати "-dПрапор для перевірки існування каталогу.
У згаданому нижче сценарії "dir11" - це змінна, в якій ви зберігаєте файл, який ви знаходите; у цьому прикладі я хочу перевірити, що назва каталогу “testDir” існує чи ні.
#!/ bin / bashdir11 = testDir
якщо [-d "$ dir11"]
тоді
echo "Каталог знайдений"
ще
echo "Каталог не знайдений"
fi
Вихід:
2) Ввівши ім’я файлу в терміналі:
Коли ви запускаєте команду в терміналі, щоб перевірити, чи існує каталог чи ні, вам потрібно ввести ім'я каталогу, яке ви шукаєте:
echo "введіть назву каталогу."
прочитати Dir1
if [-d "Dir1"]
тоді
echo "каталог знайдений"
ще
echo "каталог не знайдено"
fi
Вихід:
Перевірка файлу без використання оператора “if”:
Команда “test” може бути виконана без оператора “if”. Він буде відображати вихід, лише якщо файл існує; інакше не було б результату:
Написати сценарій:
- тест -f myfile.txt && echo "файл знайдено"
- [-f myfile.txt] && echo "$ файл знайдено."
- [[-f myfile.txt]] && echo "Файл $ знайдено."
Вихід:
Перевірка каталогу без використання оператора “if”:
Використовуйте наведені нижче заяви, щоб перевірити, чи існує каталог чи ні:
- [[-d testDir]] && echo "каталог справді існує"
- 2) [-d testDir] && echo "каталог справді існує"
Вихід:
Перевірка декількох файлів / каталогів:
1) Перевірка декількох файлів із твердженнями “якщо”:
Використовуйте прапор “-a”, щоб перевірити існування різних файлів, замість того, щоб використовувати вкладені оператори “if / else”:
якщо [-f новий_файл.txt -a -f новий файл.txt]; тоді
echo "Обидва файли існують."
fi
Інший спосіб:
#!/ bin / bashякщо [[-f новий_файл.txt && -f новий файл.txt]]; тоді
echo "Обидва файли існують."
fi
Вихід:
2) Перевірка декількох файлів без використання оператора “якщо”:
Використовуйте наступне твердження для одночасної перевірки декількох файлів 1 без використання “якщо”:
- [[-f новий_файл.txt && -f новий файл.txt]] && echo “Обидва файли закриваються."
- [[-f новий_файл.txt && -f новий файл.txt]] && echo “Обидва файли закриваються."
Вихід:
Висновок:
У цій статті показано, як використовувати скрипт bash для перевірки файлу або каталогу. Ми використовували різні варіанти, щоб перевірити наявність файлу. По-перше, ми використовуємо команду “test” з різними прапорцями. Потім ми вивчили використання “if”, вкладене “if-else” та без операторів “if” для перевірки файлу чи каталогу. Ми також розглянули, як перевірити кілька файлів або каталогів.