[
на самом деле более широко известно как команда test
. Обычно эта команда используется для оценки выражений и возврата их состояния - истина или ложь. Он часто используется в операторах if-then-else-fi
, хотя его можно использовать и вне операторов if
для условного запуска других команд через &&
или ||
операторы, вроде этого.
$ [ -e /etc/passwd ] && echo "File exists"
File exists
$ test -e /etc/passwd && echo "File exists"
File exists
Более конкретно, оценка передается другим командам через статус выхода.Некоторые программы могут выбрать вывод статуса выхода для обозначения различных типов событий - успешного завершения программы, ошибки определенного типа, возникающей во время выполнения, или синтаксических ошибок. В случае команды test
, там 0
означает истину, а 1
означает ложь. Как указал Стефан, синтаксические ошибки приводят к состоянию выхода 2
.
Его расположение зависит от вашей системы, а также объясняет, почему вы не видели справочную страницу, когда открывали man [
. Например, во FreeBSD он находится в каталоге / bin
. В Linux (или в моем конкретном случае Ubuntu 16.04) он находится в / usr / bin /
. Если вы выполните man [
или man test
в системе Linux, вы увидите, что открыта та же документация. Также важно отметить, что ваша оболочка может иметь собственную реализацию test
.
Следует также отметить, что эта команда имеет проблемы , которые в реализации оболочки Korn (обычно известной как «условное выражение» ] упоминаются в двойных квадратных скобках, [[" $ USER "=" root "]]
) пытается разрешить. Эта функция также используется другими оболочками, такими как bash
и zsh
.
Похоже, вы находитесь на Centos
или Rhel
, и у вас не настроен репозиторий. Если в настоящее время у вас нет подписки Red Hat, но вам нужно включить репозиторий EPEL (Extra Packages for Enterprise Linux) на вашем RHEL 7, вам нужно добавить репозиторий EPEL, вы можете сделать это, запустив следующие команды.
Это должно добавить репозиторий в вашу систему.
Для 64-битныхсистем RHEL
и Centos
:
cd /tmp
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
ls *.rpm
sudo yum install epel-release-latest-7.noarch.rpm
Вы должны увидеть репозиторий, используя yum repolist
под Дополнительные пакеты epel/x86_64 для Enterprise Linux 7 — x86_64
Это работает как для Centos 7.xx, так и для Rhel 7.xx