Псевдоним для команды git

echo помещает пробел между каждыми двумя аргументами. Оболочка считает новую строку в $ num просто разделителем слов (как и пробел).

lines="a
b
c"
set -x
echo $lines   # several arguments to echo
echo "$lines" # one argument to echo

См. этот ответ (сам ОП) для более подробного объяснения.

10
10.02.2019, 18:27
2 ответа

Это продиктовано конфигурацией NSS (Name Service Switch ), то есть директивой hostsфайла /etc/nsswitch.conf. Например, в моей системе:

hosts:    files mdns4_minimal [NOTFOUND=return] dns

Здесь filesотносится к файлу /etc/hosts, а dnsотносится к системе DNS. И, как вы понимаете, побеждает тот, кто придет первым.

Также см. man 5 nsswitch.conf, чтобы получить больше информации об этом.


Кроме того, чтобы следовать порядку разрешения узлов NSS, используйте getentс hostsв качестве базы данных, например.:

getent hosts example.com
25
27.01.2020, 19:59

Чтобы ответить только на ваш последний вопрос,:/etc/hostsне применяется сразу же, потому что firefoxкэширует последнее имя хоста, полученное для google.com; если вы хотите, чтобы он всегда получал его снова, вам нужно установитьnetwork.dnsCacheExpirationна 0в about:config. Дополнительная информация (хотя и немного устарела)здесь . Извините, если это оффтоп.


Кстати, многие программы не используют стандартный преобразователь (getaddrinfo(3), getnameinfo(3)[1] ), потому что он отстой .

Во-первых, интерфейс не является асинхронным; любой умеренно сложной программе придется создавать отдельный поток, выполняющий только getaddrinfo(), а затем изобретать собственный протокол для связи с ним (и даже не входить в getaddrinfo_a(), который отправляет сигнал . ] по завершению, так что это еще хуже ).

Во-вторых, реализация резолвера вglibc(стандартной библиотеке C в linux )ужасна, ожидая, что вы позволите ему загружать случайные динамические объекты в адресное пространство через dlopen()за вашей спиной, и делает невозможным содержать его каким-либо образом или использовать в статически связанных исполняемых файлах.

Поскольку многие программы не используют стандартный распознаватель напрямую, они также не заботятся о точном воспроизведении его поведения и игнорируют некоторые или все /etc/resolv.conf, /etc/hosts, /etc/nsswitch.confили /etc/gai.conf.

[1] и даже не упоминайте нереентерабельный -, только ipv4 -gethostbyname(), который устарел с незапамятных времен.

9
27.01.2020, 19:59

Теги

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