Що -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.
[...]
testbash, ви не посилаєтесь на testбінарний файл. Натомість ви посилаєтесь на testвбудований bash's , який має документацію help test, серед інших місць. man testможе вводити в оману в деяких випадках з цієї причини.
ifсамо по собі є ключовим словом оболонки, тому ви можете знайти інформацію про нього за допомогою help if. ifсам розгалужується лише на основі того, що наступна команда повертає true (0) або false (не нуль). Те, що ви насправді хочете, є man [або man test, де [це псевдонім test. Це твердження насправді виконується test -x /etc/rc.local, яке перевіряє, чи існує цей файл і є виконуваним (чи має дозвіл на пошук).
man [працює теж.
if- не оболонка, це ключове слово оболонки. Запустіть цю команду, type ifщоб перевірити це.
Від info test:
`-x FILE'
True if FILE exists and execute permission is granted (or search permission, if it is a directory).
Дозвіл на виконання потрібен для каталогу, щоб мати змогу входити в нього (тобто зробити деякий каталог вашою поточною робочою каталогом).
Виконати потрібно в каталозі для доступу до інформації "inode" для файлів всередині. Це вам потрібно для пошуку в каталозі, щоб прочитати вставки файлів всередині. З цієї причини дозвіл на виконання в каталозі часто називається дозволом пошуку.