Что -xзначит здесь:
if [ -x /etc/rc.local ] then
Как я могу найти эту страницу руководства для if?
help if?
Что -xзначит здесь:
if [ -x /etc/rc.local ] then
Как я могу найти эту страницу руководства для if?
help if?
Ответы:
Со 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.
[...]
testв bash, вы не вызываете testдвоичный файл. Вместо этого вы используете testвстроенную в bash встроенную документацию help test, в том числе. man testможет вводить в заблуждение в некоторых случаях по этой причине.
ifсамо по себе является ключевым словом оболочки, поэтому вы можете найти информацию о нем с помощью help if. ifсама ветвится только в зависимости от того, возвращает ли следующая команда true (0) или false (не ноль). Что вы действительно хотите, хотя, man [или man test, где [псевдоним для test. Этот оператор фактически выполняется test -x /etc/rc.local, который проверяет, существует ли этот файл и является ли он исполняемым (или имеет разрешение на поиск).
man [тоже работает
if- это не оболочка, встроенная в ключевое слово shell. Для проверки запустите эту команду type if.
От info test:
`-x FILE'
True if FILE exists and execute permission is granted (or search permission, if it is a directory).
Разрешение на выполнение требуется для каталога, чтобы иметь возможность CD в него (то есть, чтобы сделать некоторый каталог вашим текущим рабочим каталогом).
Выполнение необходимо для каталога, чтобы получить доступ к информации «inode» файлов внутри. Это необходимо для поиска в каталоге для чтения инодов файлов внутри. По этой причине разрешение на выполнение в каталоге часто называется разрешением поиска.