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

结果idn2xn--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 并意识到我有 ASCIIc字母правительство.рф而不是俄语c。这就是问题所在。

相关内容