что означает -x в условном выражении?

Что означает -x здесь:

if [ -x /etc/rc.local ] then

Как я могу узнать эту страницу руководства для if?

1
задан 3 July 2015 в 21:54

2 ответа

if сам по себе является ключевым словом оболочки, поэтому вы можете найти информацию об этом с помощью help if. if сам по себе только ветви на основе того, возвращает ли следующая команда true (0) или false (не ноль). Однако вам действительно нужно man [ или man test, где [ является псевдонимом для test. Этот оператор фактически выполняет test -x /etc/rc.local, который проверяет, существует ли этот файл и является его исполняемым (или имеет разрешение на поиск).

12
ответ дан 24 May 2018 в 09:38
  • 1
    man [ работает тоже. – Sparhawk 9 April 2014 в 19:21
  • 2
    Он не только проверяет, существует ли он, но и проверяет, является ли файл исполняемым. – Tom Fenech 9 April 2014 в 22:18
  • 3
    @TomFenech, ах, правильно ... – psusi 10 April 2014 в 03:21
  • 4
    @psusi if не является оболочкой, встроенной в это ключевое слово оболочки. Запустите эту команду type if, чтобы проверить это. – Avinash Raj 10 April 2014 в 08:20

Из info test:

`-x FILE'
    True if FILE exists and execute permission is granted (or search permission, if it is a directory).

Требуется разрешение на работу в каталоге, чтобы иметь возможность вставлять в него (т. е. сделать какой-то каталог вашей текущей рабочей директорией).

Выполнение необходимо в каталоге для доступа к информации «inode» файлов внутри. Вам нужно это для поиска в каталоге, чтобы прочитать inodes файлов внутри. По этой причине разрешение на выполнение в каталоге часто называется разрешением на поиск.

4
ответ дан 24 May 2018 в 09:38

Другие вопросы по тегам:

Похожие вопросы: