我有一个小的shell脚本在.x
中。
$ cat .x
u="Böhmáí"
touch "$u"
ls > .list
echo "$u" >.text
cat .list .text
diff .list .text
od -bc .list
od -bc .text
当我运行这个脚本 sh -x .x
(-x只是用来显示命令)时
$ sh -x .x
+ u=Böhmáí
+ touch Böhmáí
+ ls
+ echo Böhmáí
+ cat .list .text
Böhmáí
Böhmáí
+ diff .list .text
1c1
< Böhmáí
---
> Böhmáí
+ od -bc .list
0000000 102 157 314 210 150 155 141 314 201 151 314 201 012
B o ̈ ** h m a ́ ** i ́ ** \n
0000015
+ od -bc .text
0000000 102 303 266 150 155 303 241 303 255 012
B ö ** h m á ** í ** \n
0000012
在文件名与文件内容中,相同的字符串Böhmáí
被编码为不同的字节。在终端(utf8编码)中,这个字符串在这两种情况下看起来相同
。
兔子在哪里?