Нет, DNS не предназначен для этого. Однако, если вы тестируете, вы можете использовать / etc / hosts
и жестко запрограммировать несколько тестовых доменных имен на определенные IP-адреса, а затем дать каждому пользователю тестовые доменные имена, которые вы хотите, чтобы они использовали.
например. / etc / hosts
IP address1 hosta.test2
IP address2 hostb.test2
IP address3 hosta.test3
IP address4 hostb.test3
...
Одинокий!
в начале команды отменяет статус выхода команды или конвейера :, если команда выходит 0
,он перевернется в1
(отказ ), и если он выйдет не -ноль, он превратит его в0
(успешный )выход.
Это использование задокументировано в руководстве Bash:
If the reserved word ‘!’ precedes the pipeline, the exit status is the logical negation of the exit status as described above.
Команда !
без следующей команды отменяет пустую команду, которая ничего не делает и возвращает истину (, эквивалентную команде :
). Таким образом, он инвертирует истину в ложь и выходит со статусом 1, но не выдает ошибки.
Существуют и другие варианты использования !
в командахtest
и [[
, где они отменяют условную проверку. Они не связаны с тем, что вы видите. Как в вашем вопросе, так и в этих случаях это не связано с расширением истории, а !
отделено от любых других терминов.
Один восклицательный знак можно найти в разделе руководства bash 3.2.2 Конвейеры
If the reserved word ‘!’ precedes the pipeline, the exit status is the logical negation of the exit status as described above.
$ ! true; echo $?
1
$ ! false; echo $?
0
Также раздел 3.2.4.2 Условные конструкции
! expression
True if expression is false.
Также раздел 4.1 Встроенные функции Bourne Shell
! expr
True if expr is false.
Также следует отметить, что !
запустит подстановку истории, если за ней не следует :пробел, табуляция, конец строки, '=' или '(' (, когда параметр оболочки extglob включается с помощью встроенной функции shopt ).
Поскольку !
используется в сравнениях и означает НЕ .
Например:
a=3
b=2
[ $a -eq $b ] && echo "Equal"
[ ! $a -eq $b ] && echo "Not equal"
# of cause last comparison is possible to write as:
[ $a -eq $b ] || echo "Not equal"
[ $a -eq $b ]
echo $?
1
[ ! $a -eq $b ]
echo $?
0
! за которой следует строка, выполняет самую последнюю предыдущую команду (, все еще находящуюся в командном буфере ), которая началась с данной строки. Может быть, оболочка просто обнаружила, что никакая предыдущая команда не начиналась с
!
встроенный -в команду, инвертирует смысл конвейера.
Другое использование:
#!
встроенный -в команду, вызывает указанный интерпретатор для выполнения скрипта.
!
указатель события, помечает команду -слово строки как подстановку истории
!=
оператор неравенства
$!
переменная оболочки, возвращает номер процесса последней фоновой команды.