Я часто вижу сценарии с использованиемпараметрыкак в if [ -f some_file ]
проверяет, some_file
является ли файл. У меня очень смутное пониманиефлаги, но может ли кто-нибудь дать мне хорошее объяснение? Другие, например -p
, -s
, я понятия не имею, что это такое, и не смог найти хороших ресурсов по ним, так как одиночный поиск в Google не дает никаких хороших результатов.
решение1
Хотите верьте, хотите нет, но [
на самом деле это еще одно название test
команды.
Вы можете проверить man
страницу:
man test
test
также является встроенной оболочкой в большинстве оболочек (и имеет приоритет над внешней):
% type -a \[
[ is a shell builtin
[ is /usr/bin/[
% type -a test
test is a shell builtin
test is /usr/bin/test
В bash
вы также можете увидеть help test
.
решение2
Лучшим решением будет руководство по bash, да, самое простое man bash
.
Чтобы найти точную запись в руководстве, выполните эту команду:
LESS=+/'^CONDITIONAL EXPRESSIONS' man bash
При работе внутри оболочки bash это также полезно:
help test