Меня всегда удивляло, что в папке
/ bin
находится программа[
.Вы правы, что удивляетесь. Это одна из редких команд POSIX с нулевой утилитой (
:
), которая не соблюдает соглашение о разрешенных символах командного файла (переносимый набор символов имени файла).Это то, что вызывается, когда мы делаем что-то вроде:
if [something]
?Точно, но его можно использовать и без
if
.Вызывая программу
[
явно в оболочке, она запрашивает соответствующий]
, и когда я указываю закрывающую скобку, кажется, что она ничего не делает, независимо от того, что я вставляю между скобки.Он ничего не делает видимым, но на самом деле он делает то же самое, что и при использовании с
if
, то есть устанавливает статус выхода на 0 (истина) или что-нибудь еще (ложь) в зависимости от того, что вы поместили внутрь скобки.Это (по какой-то причине) то же поведение, что и командаtest
; единственная разница в том, что он ищет концовку]
. Подробнее см.man test
.Излишне говорить, что обычный способ получения справки по программе не работает, т.е. ни
man [
, ни[--help
] не работают.Это зависит от вашей операционной системы.
man [
определенно работает для меня в паре основных дистрибутивов Gnu / Linux, но не в Solaris.
[--help
может работать или нет, в зависимости от реализации, поскольку синтаксис в любом случае нарушается, отсутствует окончание]
. Более того, стандарт POSIX дляtest
/[
, команда явно исключает все параметры, включая завершение параметров-
, поэтому оба[--help]
иtest --help
должны возвращатьtrue
и молчать по умолчанию. Обратите внимание, что то, что вы поместили в скобки или после[
и которые выглядят как параметры (например,-f file
,-n string
и т. Д.), Не являются варианты , но операнды .Все современные интерпретаторы оболочки в стиле Борна (например,
bash
,ksh
,dash
иzsh
и др.) Реализуютtest
/[
внутренне как встроенная утилита, поэтому при их использовании правильная страница руководства, на которую можно ссылаться, может относиться к оболочке, а не кtest
.До Unix System III (1981) оболочка Bourne не реализовывала утилиту
test
как встроенную, поэтому была доступна только реализация внешней двоичной команды. До Unix System III не было команды[
(внутренней или встроенной), поэтому, например, в Unix версии 7 вам нужно было ввести:if test something ; then …
вместо:
if [ something ] ; then …
Эта статья может вас заинтересовать. Такие опции есть как в Firefox, так и в Chrome, но найти их непросто. Я думаю, что Edge и Safari могут сделать это, но я не уверен. В Opera должна быть опция, аналогичная Chrome.
В зависимости от сайта вы также можете остановить перенаправления, отключив JavaScript (Существует множество расширений для Chrome и Firefox, которые позволяют вам делать это -для каждого сайта ).