Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Выражения файлов

Следующие выражения используются для оценки состояния файлов:


Таблица 27-1: Выражения тестового файла


Выражение истинно, если:

Выражение истинно, если:

file1 -эф file2 file1 и file2 имеют одинаковые номера inode (два

имена файлов относятся к одному и тому же файлу путем жесткой ссылки).


изображение

file1 -нт file2 file1 новее, чем file2.


изображение

file1 -от file2 file1 старше, чем file2.


изображение

-b файл файл существует и представляет собой специальный блочный файл (устройство).


изображение

-c файл файл существует и является файлом специального символа (устройства).


изображение

-d файл файл существует и является каталогом.


изображение

-e файл файл существует.


изображение

-f файл файл существует и является обычным файлом.


изображение

-g файл файл существует и имеет идентификатор группы set.


изображение

-G файл файл существует и принадлежит эффективному идентификатору группы.


изображение

-k файл файл существует и имеет набор «липких битов».


изображение


изображение

-L файл файл существует и является символической ссылкой.


изображение

-O файл файл существует и принадлежит эффективному идентификатору пользователя.


изображение

-p файл файл существует и является именованным каналом.


изображение

-r файл файл существует и доступен для чтения (имеет доступ для чтения для эффективного пользователя).


изображение

-s файл файл существует и имеет длину больше нуля.


изображение

-S файл файл существует и является сетевым сокетом.


изображение

-t fd fd - дескриптор файла, направляемый в / из терминала. Это можно использовать, чтобы определить, перенаправляется ли стандартный ввод / вывод / ошибка.


изображение

-u файл файл существует и установлен uid.


изображение

-w файл файл существует и доступен для записи (имеет разрешение на запись для действующего пользователя).


изображение

-x файл файл существует и является исполняемым (имеет разрешение на выполнение / поиск для действующего пользователя).


изображение


Здесь у нас есть сценарий, демонстрирующий некоторые файловые выражения:



#! / Bin / Баш


# test-file: Оценить статус файла FILE = ~ / .bashrc

если [-e "$ FILE"]; тогда

если [-f "$ FILE"]; тогда

echo "$ FILE - это обычный файл."

fi

если [-d "$ FILE"]; тогда

echo "$ FILE - это каталог."

fi

если [-r "$ FILE"]; тогда

echo "$ FILE доступен для чтения."

fi

если [-w "$ FILE"]; тогда

echo "$ FILE доступен для записи."

fi

если [-x "$ FILE"]; тогда

echo "$ FILE доступен для выполнения / поиска."

#! / Bin / Баш


# test-file: Оценить статус файла FILE = ~ / .bashrc

если [-e "$ FILE"]; тогда

если [-f "$ FILE"]; тогда

echo "$ FILE - это обычный файл."

fi

если [-d "$ FILE"]; тогда

echo "$ FILE - это каталог."

fi

если [-r "$ FILE"]; тогда

echo "$ FILE доступен для чтения."

fi

если [-w "$ FILE"]; тогда

echo "$ FILE доступен для записи."

fi

если [-x "$ FILE"]; тогда

echo "$ FILE доступен для выполнения / поиска."


фи еще

echo "$ FILE не существует" выход 1

fi


выход

фи еще

echo "$ FILE не существует" выход 1

fi


выход


Скрипт оценивает файл, присвоенный константе ФАЙЛОВ и отображает его результаты по мере выполнения оценки. В этом скрипте есть две интересные вещи. Во-первых, обратите внимание, как параметр $ FILE заключен в кавычки внутри выражений. Это не требуется для синтаксического завершения выражения, это скорее защита от пустого параметра. Если расширение параметра $ FILE если результат будет пустым, это вызовет ошибку (операторы будут интерпретироваться как ненулевые строки, а не как операторы). Использование кавычек вокруг параметра гарантирует, что за оператором всегда будет следовать строка, даже если строка пуста. Во-вторых, обратите внимание на присутствие выход команда в конце скрипта. В выход Команда принимает единственный необязательный аргумент, который становится статусом выхода сценария. Если аргумент не передан, статус выхода по умолчанию соответствует статусу выхода последней выполненной команды. С использованием выход таким образом позволяет сценарию указывать на сбой, если $ FILE расширяется до имени несуществующего файла. В выход Команда, появляющаяся в последней строке скрипта, является формальностью. Когда сценарий «работает до конца» (достигает конца файла), он завершается статусом завершения последней выполненной команды.

Точно так же функции оболочки могут возвращать статус выхода, включая целочисленный аргумент в возвращают команда. Если бы мы преобразовали приведенный выше сценарий в функцию оболочки, чтобы включить его в более крупную программу, мы могли бы заменить выход команды с возвращают заявления и получить желаемое поведение:



тестовый_файл () {


# test-file: Оценить статус файла FILE = ~ / .bashrc

если [-e "$ FILE"]; тогда

если [-f "$ FILE"]; тогда

echo "$ FILE - это обычный файл."

fi

если [-d "$ FILE"]; тогда

echo "$ FILE - это каталог."

fi

если [-r "$ FILE"]; тогда

тестовый_файл () {


# test-file: Оценить статус файла FILE = ~ / .bashrc

если [-e "$ FILE"]; тогда

если [-f "$ FILE"]; тогда

echo "$ FILE - это обычный файл."

fi

если [-d "$ FILE"]; тогда

echo "$ FILE - это каталог."

fi

если [-r "$ FILE"]; тогда


echo "$ FILE доступен для чтения."

fi

если [-w "$ FILE"]; тогда

echo "$ FILE доступен для записи."

fi

если [-x "$ FILE"]; тогда

echo "$ FILE доступен для выполнения / поиска."

fi

еще

echo "$ FILE не существует" return 1

fi


}

echo "$ FILE доступен для чтения."

fi

если [-w "$ FILE"]; тогда

echo "$ FILE доступен для записи."

fi

если [-x "$ FILE"]; тогда

echo "$ FILE доступен для выполнения / поиска."

fi

еще

echo "$ FILE не существует" return 1

fi


}


Лучшие облачные вычисления для ОС в OnWorks: