BASH Программирование

Как проверить, существует ли файл в bash

Как проверить, существует ли файл в bash
Есть несколько способов проверить доступность файла в Linux. Команда «test» в сценариях bash - один из ключевых подходов к проверке существования файла.
Основное внимание в этом руководстве уделяется обсуждению существования файла в вашей системе с помощью сценариев bash:

Как проверить наличие файла с помощью сценария bash:

1) Путем ввода имени файла в терминале:

Во-первых, нам нужно создать файл сценария bash, используя следующую команду:

$ touch testfile.ш

Имя созданного мной файла - «testfile.ш »,«.sh »указывает на файл сценария оболочки:

Откройте «testfile.sh »в любом текстовом редакторе. Затем напишите сценарий, сохраните его, нажав «сохранить».

Один из способов - найти файл, запросив имя файла у пользователя в терминале.

Использовать "», Чтобы проверить наличие файла.

Напишите сценарий ниже:

#!/ bin / bash
echo "Введите ваше имя файла"
читать newfile1
если [-f "$ newfile1"]
тогда
echo "Файл найден"
еще
echo "Файл не найден"
фи

Вернитесь в терминал и запустите файл для вывода на печать:

./имя файла.ш

В терминале будет отображаться сообщение об отказе в разрешении.

Сделайте его исполняемым, выполнив указанную ниже команду:

$ chmod + x testfile.ш

Введите имя файла, и он распечатает результат:

2) Введя имя файла при написании скрипта:
Другой способ найти файл, указав имя файла при написании скрипта. У нас есть три способа проверить доступность файла. Первый использует команду «test», второй использует «if» с выражением в квадратных скобках, а третий также использует «if», но в двойных квадратных скобках, как показано ниже:

  1. «Тест ВЫРАЖЕНИЕ.”
  2. «Если [ВЫРАЖЕНИЕ]»
  3. «Если [[ВЫРАЖЕНИЕ]]»

Разберемся на примерах:

1) test [Expression]
Скопируйте данный скрипт и вставьте его в редактор, сохраните:

#!/ bin / bash
имя_файла = файл1
если test -f "$ filename";
тогда
echo "$ файл найден."
еще
echo "$ file не найден"
фи

Выход:

Так как в моем каталоге такого файла нет, код отображает сообщение «Файл не найден».

2) если [Выражение]

Скопируйте следующий сценарий, чтобы проверить, существует ли файл:

#!/ bin / bash
filename = myfile.текст
если [-f "$ filename"];
тогда
echo "$ filename найдено."
еще
echo "имя файла не найдено"
фи

Выход:

3) если [[Выражение]]

Скопируйте написанный ниже скрипт и вставьте его в терминал:

#!/ bin / bash
имя_файла = тестовый файл
если [[-f "$ filename"]];
тогда
echo "$ filename найдено."
еще
echo "$ filename не найдено"
фи

Выход:

Чтобы проверить каталог:

3) Путем ввода имени каталога при написании скрипта

Использовать "-d», Чтобы проверить наличие каталога.

В приведенном ниже сценарии «dir11» - это переменная, в которой вы храните файл, который вы нашли; в этом примере я хочу проверить, существует ли имя каталога testDir.

#!/ bin / bash
dir11 = testDir
если [-d "$ dir11"]
тогда
echo "Каталог найден"
еще
echo "Каталог не найден"
фи

Выход:

2) Введя имя файла в терминал:
Когда вы запускаете команду в терминале, чтобы проверить, существует ли каталог или нет, вам необходимо ввести имя каталога, который вы ищете:

#!/ bin / bash
echo "введите название вашего каталога."
читать Dir1
если [-d "Dir1"]
тогда
echo "каталог найден"
еще
echo "каталог не найден"
фи

Выход:

Проверка файла без использования оператора «if»:

Команда «test» может выполняться без оператора «if». Вывод будет отображаться только в том случае, если файл существует; иначе не было бы вывода:

Напишите сценарий:

  1. test -f myfile.txt && echo "файл найден"

  2. [-f myfile.txt] && echo "$ файл был найден."

  3. [[-f myfile.txt]] && echo "$ файл был найден."

Выход:

Проверка каталога без использования оператора «if»:

Используйте приведенные ниже инструкции, чтобы проверить, существует ли каталог:

  1. [[-d testDir]] && echo "каталог действительно существует"

  2. 2) [-d testDir] && echo "каталог действительно существует"

Выход:

Проверка нескольких файлов / каталогов:

1) Проверка нескольких файлов с помощью операторов «если»:
Используйте флаг «-a» для проверки существования различных файлов вместо использования вложенных операторов «if / else»:

#!/ bin / bash
если [-f новый_файл.txt -a -f новый файл.текст ]; тогда
echo "Оба файла существуют."
фи

Другой способ:

#!/ bin / bash
если [[-f новый_файл.txt && -f новый файл.текст ]]; тогда
echo "Оба файла существуют."
фи

Выход:

2) Проверка нескольких файлов без использования оператора «if»:
Используйте следующий оператор для одновременной проверки нескольких файлов 1 без использования «если»:

  1. [[-f новый_файл.txt && -f новый файл.txt]] && echo «Оба файла закрываются.”

  2. [[-f новый_файл.txt && -f новый файл.txt]] && echo «Оба файла закрываются.”

Выход:

Заключение:

В этой статье показано, как использовать сценарий bash для проверки файла или каталога. Мы использовали разные варианты, чтобы проверить доступность файла. Во-первых, мы используем команду «test» с разными флагами. Затем мы научились использовать «if», вложенное «if-else» и без операторов «if» для проверки файла или каталога. Мы также рассмотрели, как проверить несколько файлов или каталогов.

Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...
Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...
Установите последнюю версию эмулятора Dolphin для Gamecube и Wii в Linux
Эмулятор Dolphin позволяет вам играть в выбранные вами игры Gamecube и Wii на персональных компьютерах (ПК) Linux. Являясь свободно доступным игровым...