isalpha.sh
来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· Shell 代码 · 共 106 行
SH
106 行
#!/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 + =
减小字号Ctrl + -
显示快捷键?