![ASCII値を比較するためのBashスクリプト[閉じる]](https://linux33.com/image/157447/ASCII%E5%80%A4%E3%82%92%E6%AF%94%E8%BC%83%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AEBash%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
質問がありますか?
#!/usr/local/bin/bash
REF_FILE_NUM="000000010000001900000052"
for id in `ls -1 dir` ;
do
FILE_NUM=${id:0:24}
echo "FILE_NUM: $FILE_NUM ; REF_FILE_NUM: $REF_FILE_NUM"
if [[ "$FILE_NUM" < "$REF_FILE_NUM" ]]
then
echo "$FILE_NUM lt $REF_FILE_NUM"
echo ""
else
echo "$FILE_NUM gt $REF_FILE_NUM"
echo ""
fi
done
freebsd# ./test.sh
FILE_NUM: 0000000100000019000000FF ; REF_FILE_NUM: 000000010000001900000052
0000000100000019000000FF gt 000000010000001900000052
FILE_NUM: 0000000100000020000000FF ; REF_FILE_NUM: 000000010000001900000052
0000000100000020000000FF gt 000000010000001900000052
FILE_NUM: 0000000100000021000000FF ; REF_FILE_NUM: 000000010000001900000052
0000000100000021000000FF gt 000000010000001900000052
答え1
すべては結局
[[ F > 5 ]] && [[ 2 > 1 ]]
ASCIIではF
70(0x46)5
ですが。
どのような結果を期待し、その理由は何ですか?