Что значит -х
означает здесь :
если [ -x /etc/rc.local ], то
Как я могу найти эту страницу руководства для , если
?
Из man bash
страниц (, особенно из раздела УСЛОВНЫЕ ВЫРАЖЕНИЯ ):
-a file
True if file exists.
-b file
True if file exists and is a block special file.
-c file
True if file exists and is a character special file.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-g file
True if file exists and is set-group-id.
-h file
True if file exists and is a symbolic link.
-k file
True if file exists and its ``sticky'' bit is set.
-p file
True if file exists and is a named pipe (FIFO).
-r file
True if file exists and is readable.
-s file
True if file exists and has a size greater than zero.
-t fd True if file descriptor fd is open and refers to a terminal.
-u file
True if file exists and its set-user-id bit is set.
-w file
True if file exists and is writable.
-x file
True if file exists and is executable.
[...]
Из info test
:
`-x FILE'
True if FILE exists and execute permission is granted (or search permission, if it is a directory).
Разрешение на выполнение необходимо для каталога, чтобы иметь возможность перейти в него (, то есть сделать какой-либо каталог вашим текущим рабочим каталогом ).
Execute необходим в каталоге для доступа к информации об «inode» файлов внутри. Это нужно для поиска в каталоге и чтения индексных дескрипторов файлов внутри. По этой причине разрешение на выполнение в каталоге часто называют разрешением на поиск.
if
сам по себе является ключевым словом оболочки, поэтому вы можете найти информацию о нем с помощью help if
. Сам if
разветвляется только в зависимости от того, возвращает ли следующая команда true (0 )или false (не ноль ). Что вам действительно нужно, так это man [
или man test
, где [
— это псевдоним для test
. Этот оператор фактически выполняет test -x /etc/rc.local
, который проверяет, существует ли этот файл и является ли он исполняемым (или имеет разрешение на поиск ).
man test
, так как вопрос задавался об одиночной открытой скобке,[
. Двойная открытая скобка[[
— это bash, построенный -, на который вы ссылались в своем ответе. – Community 04.09.2014, 21:16