idn2 работает иначе, чем скрипт bash и командная строка

idn2 работает иначе, чем скрипт bash и командная строка

У меня есть следующая команда 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настроил vimdiffdifftool и понял, что у меня вместо русской cбуквы была ASCII . Вот в чем была проблема.правительство.рфc

Связанный контент