Фокусът на това ръководство е да обсъдим съществуването на файл във вашата система чрез bash скриптове:
Как да проверите съществуването на файл с помощта на bash скриптове:
1) Като въведете името на файла в терминала:
Първо, трябва да създадем bash скрипт файл, използвайки посочената по-долу команда:
$докосванеtestfile.sh
Името на файла, който създадох, е testfile.sh, разширението .sh показва файла на скрипта на черупката:
Отворете testfile.sh във всеки текстов редактор. След това напишете скрипта, запазете го, като натиснете save.
Един от начините е да намерите файл, като поискате име на файл от потребителя в терминала.
Използвайте -f за да проверите съществуването на файла.
Напишете следния скрипт:
#!/bin/bashизхвърлен „Въведете името на файла си“
Прочетинов файл1
ако [ -f '$ newfile1' ]
тогава
изхвърлен „Файлът е намерен“
иначе
изхвърлен „Файлът не е намерен“
бъда
Върнете се към терминала и стартирайте файла, за да отпечатате изход:
./filename.shСъобщението за отказано разрешение ще се покаже в терминала.
Направете го изпълним, като изпълните следната команда:
$chmod+ x testfile.sh
Въведете името на файла и той ще отпечата резултата:
2) Като въведете името на файла, докато пишете скрипта:
Друг начин да намерите файл, като дадете името на файла, докато пишете скрипта. Имаме три начина да проверим наличността на файла. Първият използва командата test, вторият използва if с израз в квадратни скоби, а третият също е с if но двойни квадратни скоби, както е посочено по -долу:
- тест EXPRESSION.
- ако [EXPRESSION]
- ако [[EXPRESSION]]
Нека го разберем с примери:
1) тест [израз]
Копирайте зададения скрипт и го поставете в редактора, запазете го:
име на файл= файл1
ако тест -f '$ име на файл';
тогава
изхвърлен '$ файле намерил.'
иначе
изхвърлен '$ файлне е намерен '
бъда
Изход:
Тъй като в моята директория няма такъв файл, следователно кодът показва съобщението Файлът не е намерен.
2) ако [израз]
Копирайте следния скрипт, за да проверите дали файлът съществува или не:
#!/bin/bashиме на файл= myfile.txt
ако [ -f '$ име на файл' ];
тогава
изхвърлен '$ име на файле намерил.'
иначе
изхвърлен 'името на файла не е намерено'
бъда
Изход:
3) ако [[израз]]
Копирайте написания по-долу скрипт и го поставете в терминала:
#!/bin/bashиме на файл= тест файл
ако [[ -f '$ име на файл' ]];
тогава
изхвърлен '$ име на файле намерил.'
иначе
изхвърлен '$ име на файлне е намерен '
бъда
Изход:
За да проверите директорията:
3) Като въведете името на директорията, докато пишете скрипт
Използвай -д флаг, за да проверите съществуването на директория.
В споменатия по-долу скрипт dir11 е променливата, в която съхранявате файла този, който намирате; в този пример искам да проверя дали името на директорията testDir съществува или не.
#!/bin/bashdir11= testDir
ако [ -д '$ dir11' ]
тогава
изхвърлен „Директорията е намерена“
иначе
изхвърлен „Директория не е намерена“
бъда
Изход:
2) Като въведете името на файла в терминала:
Когато изпълните командата в терминала, за да проверите дали директорията съществува или не, трябва да въведете името на директорията, което търсите:
изхвърлен 'въведете името на вашата директория.'
ПрочетиDir1
ако [ -д „Dir1“ ]
тогава
изхвърлен 'директория е намерена'
иначе
изхвърлен 'директория не е намерена'
бъда
Изход:
Проверка на файла без използване на оператора if:
Тестовата команда може да се изпълни без оператора if. Той ще показва изход само ако файлът съществува; иначе няма да има изход:
Пишете скрипт:
- тест -fmyfile.txt&& изхвърлен 'файлът е намерен'
- [ -fmyfile.txt] && изхвърлен '$ файлбеше намерен.'
- [[ -fmyfile.txt]] && изхвърлен '$ файлбеше намерен.'
Изход:
Проверка на директорията без използване на оператора if:
Използвайте посочените по-долу изявления, за да проверите дали директория съществува или не:
- [[ -дtestDir]] && изхвърлен 'директория съществува'
- 2) [ -дtestDir] && изхвърлен 'директория съществува'
Изход:
Проверка на множество файлове/директории:
1) Проверка на множество файлове с изрази if:
Използвайте флага -a, за да проверите съществуването на различни файлове, вместо да използвате вложени if/else изрази:
ако [ -fnew_file.txt-да се -fnewfile.txt];тогава
изхвърлен 'И двата файла съществуват.'
бъда
Друг начин е:
#!/bin/bashако [[ -fnew_file.txt&& -fnewfile.txt]];тогава
изхвърлен 'И двата файла съществуват.'
бъда
Изход:
2) Проверка на множество файлове без използване на оператора if:
Използвайте следното изявление, за да проверите няколко файла едновременно 1, без да използвате, ако:
- [[ -fnew_file.txt&& -fnewfile.txt]] && изхвърленИ двата файла излизат.
- [[ -fnew_file.txt&& -fnewfile.txt]] && изхвърленИ двата файла излизат.
Изход:
Заключение:
Тази статия е показала как да използвате bash скриптове за проверка на файл или директория. Използвахме различни опции, за да проверим наличността на файл. Първо, използваме командата test с различни флагове. След това научихме използването на if, вложено if-else, и без операторите if за проверка на файла или директорията. Разгледахме и как да проверим множество файлове или директории.