
У меня есть следующая команда ping -qc 1 $(idn2 правительство.рф)
в файле скрипта bash ping.sh
.
Когда я запускаю скрипт, $ bash -x ./ping.sh
я получаю:
++ idn2 правительcтво.рф
+ ping -qc 1 xn--c-7sbgbnrw0abkzd2k.xn--p1ai
ping: unknown host xn--c-7sbgbnrw0abkzd2k.xn--p1ai
+ exit
с idn2
результатомxn--c-7sbgbnrw0abkzd2k.xn--p1ai
Но когда я ввожу команду $ ping -qc 1 $(idn2 правительство.рф)
в командной строке терминала bash, я получаю другой результат:
PING xn--80aealotwbjpid2k.xn--p1ai (95.173.135.62) 56(84) bytes of data.
--- xn--80aealotwbjpid2k.xn--p1ai ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
с idn2
результатом xn--80aealotwbjpid2k.xn--p1ai
.
Что это?
решение1
Короче говоря, убедитесь, что вы вводите международные доменные имена с помощью правильной раскладки клавиатуры, и не исправляйте написание международных доменных имен с помощью неправильной раскладки клавиатуры.
правительство.рф
Я вручную переписал строку в своем скрипте, затем протестировал скрипт, и проблема исчезла. Мне повезло, что я добавил скрипт в репозиторий git. Поэтому я git diff
, и git показал мне, что в правительство.рф
. Затем я git difftool
настроил vimdiff
difftool и понял, что у меня вместо русской c
буквы была ASCII . Вот в чем была проблема.правительство.рф
c