📄 isalpha.sh
字号:
#!/bin/bash# isalpha.sh: 使用"case"结构来过滤字符串. SUCCESS=0FAILURE=-1isalpha () # 检查输入的 *第一个字符* 是不是字母表上的字符.{if [ -z "$1" ] # 没有参数传进来?then return $FAILUREficase "$1" in[a-zA-Z]*) return $SUCCESS;; # 以一个字母开头?* ) return $FAILURE;;esac} # 同C语言的"isalpha ()"函数比较一下. isalpha2 () # 测试 *整个字符串* 是否都是字母表上的字符.{ [ $# -eq 1 ] || return $FAILURE case $1 in *[!a-zA-Z]*|"") return $FAILURE;; *) return $SUCCESS;; esac}isdigit () # 测试 *整个字符串* 是否都是数字.{ # 换句话说, 就是测试一下是否是整数变量. [ $# -eq 1 ] || return $FAILURE case $1 in *[!0-9]*|"") return $FAILURE;; *) return $SUCCESS;; esac}check_var () # 测试isalpha().{if isalpha "$@"then echo "\"$*\" begins with an alpha character." if isalpha2 "$@" then # 不需要测试第一个字符是否是non-alpha. echo "\"$*\" contains only alpha characters." else echo "\"$*\" contains at least one non-alpha character." fi else echo "\"$*\" begins with a non-alpha character." # 如果没有参数传递进来, 也是"non-alpha". fiecho}digit_check () # 测试isdigit().{if isdigit "$@"then echo "\"$*\" contains only digits [0 - 9]."else echo "\"$*\" has at least one non-digit character."fiecho}a=23skidoob=H3lloc=-What?d=What?e=`echo $b` # 命令替换.f=AbcDefg=27234h=27a34i=27.34check_var $acheck_var $bcheck_var $ccheck_var $dcheck_var $echeck_var $fcheck_var # 没有参数传递进来, 将会发生什么?#digit_check $gdigit_check $hdigit_check $iexit 0 # S.C改进了这个脚本.# 练习:# -----# 编写一个'isfloat ()'函数来测试浮点数.# 暗示: 这个函数基本上与'isdigit ()'相同,#+ 但是要添加一些小数点部分的处理.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -