- 论坛徽章:
- 1
|
我们知道,perl有个区间操作符,..,例如:/home/lee#perl -e 'print a..z'
abcdefghijklmnopqrstuvwxyz/home/lee#
/home/lee#perl -e 'print A..Z,"\n"'
ABCDEFGHIJKLMNOPQRSTUVWXYZ
在shell里,同样可以实现
- /home/lee#cat ch
- #!/bin/bash
- [[ $1 == [[:alpha:]] ]]&&[[ $2 == [[:alpha:]] ]]&&(($#==2)) || \
- { echo "Usage:$(basename $0) <a z>/<A Z>";exit 1; }
- begin=$(echo $1|od -b)
- begin=${begin:8:3}
- end=$(echo $2|od -b)
- end=${end:8:3}
- while((begin<=end));do
- [[ $begin != *[89] ]] && echo -ne "\\0$begin"
- ((begin++))
- done
- echo
复制代码
test/home/lee#ch a z
abcdefghijklmnopqrstuvwxyz
/home/lee#ch A Z
ABCDEFGHIJKLMNOPQRSTUVWXYZ
/home/lee#ch x z
xyz
/home/lee#ch a Z #在perl里这个只打印小写26个字母
/home/lee#ch 1 a
Usage:ch <a z>/<A Z>
/home/lee#ch a
Usage:ch <a z>/<A Z>
/home/lee#ch , 4
Usage:ch <a z>/<A Z>
/home/lee#ch df 34
Usage:ch <a z>/<A Z> |
|