Привет друзья. Сегодня грузить дебагом и гиковскими вещами не буду, разберем простую, но важную тему: как проверить существует ли файл.
Сделать это можно несколькими способами:
Во втором примере я использую команду test. Оба этих примера делают одно и тоже, но в большинстве случаев обычно используется первый вариант.
Команда test предназначена для проверки типа файла и сравнения чисел и строк. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости от вычисления выражения. Выражения могут быть как унарными, так и бинарными.
Ну а если подставить символ «!» в условия, то сработает обратная логика:
Да, часто возникают вопросы по ключу «-f», это не единственный ключ, их достаточно много, например можно проверить существование директории, сокета, установленные права и т.п. Табличку со всеми этими ключами я вынес отдельно сюда.
То же самое можно уместить в одну строчку, синтаксис будет таким:
Вещи с виду банальные, но важные, подобные конструкции очень часто используются в bash скриптах. В этом посте я использую проверку существования файла, для того чтобы определить подключен ли у меня сетевой диск. Опять же все зависит от задачи, которую ты хочешь решить.
Сегодня еще увидимся после интеграции, а вот завтра устроим разгрузочный день, пятница как-никак. Ладно давай пять, на связи!
tags: #bash #linux
—
🟢 Подпишись: @bashdays
Сделать это можно несколькими способами:
filename="test.txt"В первом примере ключ -f означает = True if file exists and is a regular file. Возвращаем True если файл существует и является обычным файлом (не директорий, ни симлинком и т.п.)
if [ -f $filename ];
then
echo "File exist"
fi
if test -f $filename;
then
echo "File exist"
fi
Во втором примере я использую команду test. Оба этих примера делают одно и тоже, но в большинстве случаев обычно используется первый вариант.
Команда test предназначена для проверки типа файла и сравнения чисел и строк. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости от вычисления выражения. Выражения могут быть как унарными, так и бинарными.
Ну а если подставить символ «!» в условия, то сработает обратная логика:
if [ ! -f $filename ];Здесь мы уже получим сообщение — указанный файл не найден. Для разных задач, разные условия.
if ! test -f $filename;
Да, часто возникают вопросы по ключу «-f», это не единственный ключ, их достаточно много, например можно проверить существование директории, сокета, установленные права и т.п. Табличку со всеми этими ключами я вынес отдельно сюда.
То же самое можно уместить в одну строчку, синтаксис будет таким:
[ ! -f "$filename" ] && echo "file not found" || echo "file exist"Подобные конструкции с одной стороны удобные, но ОЧЕНЬ плохо читаются, так что советую использовать их по минимуму. Например однострочник актуален в пайплайнах gitlab и т.п. где нужно умещать логику в одну строку.
Вещи с виду банальные, но важные, подобные конструкции очень часто используются в bash скриптах. В этом посте я использую проверку существования файла, для того чтобы определить подключен ли у меня сетевой диск. Опять же все зависит от задачи, которую ты хочешь решить.
Сегодня еще увидимся после интеграции, а вот завтра устроим разгрузочный день, пятница как-никак. Ладно давай пять, на связи!
tags: #bash #linux
—