Основное внимание в этом руководстве уделяется обсуждению существования файла в вашей системе с помощью сценариев bash:
Как проверить наличие файла с помощью сценария bash:
1) Путем ввода имени файла в терминале:
Во-первых, нам нужно создать файл сценария bash, используя следующую команду:
$ touch testfile.шИмя созданного мной файла - «testfile.ш »,«.sh »указывает на файл сценария оболочки:
Откройте «testfile.sh »в любом текстовом редакторе. Затем напишите сценарий, сохраните его, нажав «сохранить».
Один из способов - найти файл, запросив имя файла у пользователя в терминале.
Использовать "-ж», Чтобы проверить наличие файла.
Напишите сценарий ниже:
#!/ bin / bashecho "Введите ваше имя файла"
читать newfile1
если [-f "$ newfile1"]
тогда
echo "Файл найден"
еще
echo "Файл не найден"
фи
Вернитесь в терминал и запустите файл для вывода на печать:
./имя файла.шВ терминале будет отображаться сообщение об отказе в разрешении.
Сделайте его исполняемым, выполнив указанную ниже команду:
$ chmod + x testfile.ш
Введите имя файла, и он распечатает результат:
2) Введя имя файла при написании скрипта:
Другой способ найти файл, указав имя файла при написании скрипта. У нас есть три способа проверить доступность файла. Первый использует команду «test», второй использует «if» с выражением в квадратных скобках, а третий также использует «if», но в двойных квадратных скобках, как показано ниже:
- «Тест ВЫРАЖЕНИЕ.”
- «Если [ВЫРАЖЕНИЕ]»
- «Если [[ВЫРАЖЕНИЕ]]»
Разберемся на примерах:
1) test [Expression]
Скопируйте данный скрипт и вставьте его в редактор, сохраните:
имя_файла = файл1
если test -f "$ filename";
тогда
echo "$ файл найден."
еще
echo "$ file не найден"
фи
Выход:
Так как в моем каталоге такого файла нет, код отображает сообщение «Файл не найден».
2) если [Выражение]
Скопируйте следующий сценарий, чтобы проверить, существует ли файл:
#!/ bin / bashfilename = myfile.текст
если [-f "$ filename"];
тогда
echo "$ filename найдено."
еще
echo "имя файла не найдено"
фи
Выход:
3) если [[Выражение]]
Скопируйте написанный ниже скрипт и вставьте его в терминал:
#!/ bin / bashимя_файла = тестовый файл
если [[-f "$ filename"]];
тогда
echo "$ filename найдено."
еще
echo "$ filename не найдено"
фи
Выход:
Чтобы проверить каталог:
3) Путем ввода имени каталога при написании скрипта
Использовать "-d», Чтобы проверить наличие каталога.
В приведенном ниже сценарии «dir11» - это переменная, в которой вы храните файл, который вы нашли; в этом примере я хочу проверить, существует ли имя каталога testDir.
#!/ bin / bashdir11 = testDir
если [-d "$ dir11"]
тогда
echo "Каталог найден"
еще
echo "Каталог не найден"
фи
Выход:
2) Введя имя файла в терминал:
Когда вы запускаете команду в терминале, чтобы проверить, существует ли каталог или нет, вам необходимо ввести имя каталога, который вы ищете:
echo "введите название вашего каталога."
читать Dir1
если [-d "Dir1"]
тогда
echo "каталог найден"
еще
echo "каталог не найден"
фи
Выход:
Проверка файла без использования оператора «if»:
Команда «test» может выполняться без оператора «if». Вывод будет отображаться только в том случае, если файл существует; иначе не было бы вывода:
Напишите сценарий:
- test -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 новый файл.текст ]; тогда
echo "Оба файла существуют."
фи
Другой способ:
#!/ bin / bashесли [[-f новый_файл.txt && -f новый файл.текст ]]; тогда
echo "Оба файла существуют."
фи
Выход:
2) Проверка нескольких файлов без использования оператора «if»:
Используйте следующий оператор для одновременной проверки нескольких файлов 1 без использования «если»:
- [[-f новый_файл.txt && -f новый файл.txt]] && echo «Оба файла закрываются.”
- [[-f новый_файл.txt && -f новый файл.txt]] && echo «Оба файла закрываются.”
Выход:
Заключение:
В этой статье показано, как использовать сценарий bash для проверки файла или каталога. Мы использовали разные варианты, чтобы проверить доступность файла. Во-первых, мы используем команду «test» с разными флагами. Затем мы научились использовать «if», вложенное «if-else» и без операторов «if» для проверки файла или каталога. Мы также рассмотрели, как проверить несколько файлов или каталогов.