コロン文字が間違っているように見えるので、簡単なテストを行いました:
。スクリプトは文字を出力し、明らかにコロンが の後9
に来ますが、文字列テストを実行すると、実際にはスラッシュの後に来るように見えます/
。何を与える?
$ cat chartest.sh
#!/bin/sh
echo $LANG
for i in {33..126}; do
printf -v hex "%x" "$i"
printf "\x$hex"
done
echo
[[ : > 9 ]] && echo true || echo false
[[ : > / ]] && echo true || echo false
$ ./chartest.sh
en_US.UTF-8
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
qrstuvwxyz{|}~
false
true
古いテスト関数を使用すると、正しく動作することがわかりました
$ [ : \> 9 ] && echo true || echo false
true
関連性もある