Shell脚本举例 #!/bin/bash This script is to test the usage of read Scriptname: ex4read.sh echo "===examples for testing read === echo -e "What is your name?\c" read name echo "Hello Sname" echo echo -n "Where do you work?" read echo "I guess SREPLY keeps you busy!" echo rea 1-p "Enter your job title:" echo "I thought you might be an SREPLY." echo echo "===End of the script ==
6 #!/bin/bash # This script is to test the usage of read # Scriptname: ex4read.sh echo "=== examples for testing read ===" echo -e "What is your name? \c" read name echo "Hello $name" echo echo -n "Where do you work? " read echo "I guess $REPLY keeps you busy!" echo read -p "Enter your job title: " echo "I thought you might be an $REPLY." echo echo "=== End of the script ===" Shell 脚本举例
条件测试 ◆条件测试可以根据某个特定条件是否满足,来选择执行 相应的任务。 ◆Bash中允许测试两种类型的条件: 命令成功或失败,表达式为真或假 ◆任何一种测试中,都要有退出状态(返回值),退出状态 为0表示命令成功或表达式为真,非0则表示命令失败或表 达式为假。 ◆状态变量$?中保存命令退出状态的值 grep SUSER /etc/passwd echo $ grep hello /etc/passwd;echo $
7 状态变量 $? 中保存命令退出状态的值 grep $USER /etc/passwd echo $? grep hello /etc/passwd; echo $? 条件测试 条件测试可以根据某个特定条件是否满足,来选择执行 相应的任务。 Bash 中允许测试两种类型的条件: 命令成功或失败,表达式为真或假 任何一种测试中,都要有退出状态(返回值),退出状态 为 0 表示命令成功或表达式为真,非0 则表示命令失败或表 达式为假
测试表达式的值 口表达式测试包括字符串测试、 整数测试和文件测试。 口内置测试命令test ●通常用test命令来测试表达式的值 x=5;y=10 test $x -gt Sy echo $ ●test命令可以用六括号来代替 x=5;y=10 $x -gt Sy 方括号前后要留空格」 echo $
8 内置测试命令 test z 通常用 test 命令来测试表达式的值 x=5; y=10 test $x -gt $y echo $? z test 命令可以用 方括号 来代替 x=5; y=10 [ $x -gt $y ] echo $? 表达式测试包括字符串测试、整数测试和文件测试。 测试表达式的值 方括号前后要留空格!
测试表达式的值 ●2.x版本以上的Bash中可以用双方括号来测试表达式 的值,此时可以使用通配符进行模式匹配。 name=Tom Sname [Tt]?? echo $ [Sname = [t]??]] echo $
9 name=Tom [ $name = [Tt]?? ] echo $? z 2.x 版本以上的 Bash 中可以用双方括号来测试表达式 的值,此时可以使用通配符进行模式匹配。 测试表达式的值 [[ $name = [Tt]?? ]] echo $?
字符串测试 口字符串测试 操作符两边必须留空格! [-z str 如果字符串str长度为0,返回真 [-n str 如果字符串str长度不为0,返回真 strl =str2 两字符串相等 [ strl ! str2 两字符串不等 name=Tom;[-z Sname ]echo $ name2=Andy;Sname Sname2 echo $ 10
10 字符串测试 [ str1 != str2 ] 两字符串不等 [ -n str ] 如果字符串 str 长度不为 0,返回真 [ str1 = str2 ] 两字符串相等 [ -z str ] 如果字符串 str 长度为 0,返回真 name=Tom; [ -z $name ]; echo $? 操作符两边必须留空格! 字符串测试 name2=Andy; [ $name = $name2 ] ; echo $?