📄 isalpha.sh
字号:
#!/bin/bash# isalpha.sh: Using a "case" structure to filter a string.SUCCESS=0FAILURE=-1isalpha () # Tests whether *first character* of input string is alphabetic.{if [ -z "$1" ] # No argument passed?then return $FAILUREficase "$1" in [a-zA-Z]*) return $SUCCESS;; # Begins with a letter? * ) return $FAILURE;;esac} # Compare this with "isalpha ()" function in C.isalpha2 () # Tests whether *entire string* is alphabetic.{ [ $# -eq 1 ] || return $FAILURE case $1 in *[!a-zA-Z]*|"") return $FAILURE;; *) return $SUCCESS;; esac}isdigit () # Tests whether *entire string* is numerical.{ # In other words, tests for integer variable. [ $# -eq 1 ] || return $FAILURE case $1 in *[!0-9]*|"") return $FAILURE;; *) return $SUCCESS;; esac}check_var () # Front-end to isalpha ().{if isalpha "$@"then echo "\"$*\" begins with an alpha character." if isalpha2 "$@" then # No point in testing if first char is 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." # Also "non-alpha" if no argument passed.fiecho}digit_check () # Front-end to 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` # Command substitution.f=AbcDefg=27234h=27a34i=27.34check_var $acheck_var $bcheck_var $ccheck_var $dcheck_var $echeck_var $fcheck_var # No argument passed, so what happens?#digit_check $gdigit_check $hdigit_check $iexit 0 # Script improved by S.C.# Exercise:# --------# Write an 'isfloat ()' function that tests for floating point numbers.# Hint: The function duplicates 'isdigit ()',#+ but adds a test for a mandatory decimal point.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -