shell-02

2/13/2017来源:经验技巧人气:1556

一 整数运算的命令

++ -- +=  -+ *= /= -= ++自加1 --自减1 x+=10 等同与 x=x+10 x-=10 等同与 x=x-10 x*=10 等同与 x=x*10 1. exPR  数字  运算符  数字   <-----------之间要有空格

2. echo $((数字+运算符+数字)) echo $[数字+运算符+数字] 3. let i++ let i-- let i+=10

let i=i+10

二 浮点数运算

#bc      交互式 #echo "scale=2;3/4" | bc #echo "1+2" | bc bc支持逻辑运算> <  <= == !=... #echo "1>3" |bc  对是1,错是0 #echo "3>1" |bc  对是1,错是0 test测试 语法格式: test 表达式 [ 表达式 ] 1.字符串测试 #[ -z $abc ]    判断abc是否为空值 #echo $?    结果为0,对,空 #abc=123 #[ -z $abc ]    判断abc是否为空值 #echo $?    结果为1,错,非空 所有测试都可用在测试前添加!代表取反 #abc=123 #[ ! -z $abc ]    判断abc是否为空值 #echo $?      结果为0,对,非空 #[ a = a ]     判断a是否与a相同 #echo $?    结果0,对,相同 #[ a != a ]     判断a是否与a不相同 #echo $?    结果1,错 2.数字判断 #[ 3 -eq 3 ]   判断3是否等于3 -eq    等于equal -ne    不等于notequal -gt    大于greaterthan -lt     小于lessthan -ge   大于等于 -le    小于等于 #A&&B   仅A命令成功,才执行B命令 #A||B   仅A不成功,才执行B命令 #A;B;C   执行A,执行B,执行C,没有逻辑关系 #[ 3 -eq 3 ]&& echo Y || echo N #[ 3 -eq 4 ]&& echo Y || echo N $((RANDOM%10)) = $[RANDOM%10]

表示随机取{0~9}十个数字

$((RANDOM%100)) = $[RANDOM%100] 表示随机取{0~99}十个数字

#vim test.sh #!/bin/bash num=$((RANDOM%10)) read -p "随机数[0-9],你猜:"guess [ $guess -eq $num ]&&echo "猜对了"&&exit||echo "悲惨" 3.对文件和目录的测试 -e 文件或目录  判断是否存在 -f 文件或目录  判断是否存在且为文件 -d 文件或目录  判断是否存在且为目录 -r 文件或目录  判断是存在且否有r权限 -w 文件或目录  判断是否存在且有w权限 -x 文件或目录  判断是否存在且有x权限 -s 文件或目录  判断是否存在且非空 #[ -f /etc/hosts ] && echo Y ||echo N #vim test8.sh #!/bin/bash login_num=`who |wc -l`  #反引号 [ $login_num -gt 5 ]&&mail -s "Error" root </etc/passwd  

制定计划任务 #crontab -e */1 * * * *  /var/tmp/test8.sh Shell中的IF语句 格式1: if [ 判断 ];then     命令 fi 格式2: if [ 判断 ];then     命令 else     命令 fi 格式3: if [ 判断 ];then     命令 elif [ 判断 ];then     命令 ... ... else     命令 fi  

#vim test.sh #!/bin/bash ping -c 3 -i 0.1 -w 2 $1 &>/dev/null if [ $? -eq 0 ];then     echo "该主机$1,ping通" else     echo "该主机$1,无法ping通" fi 等级分 >=90  神功盖世 80-89 登堂入室 70-79 初窥门道 60-69 初学炸道 <60   婴儿 #!/bin/bash read -p "输入您的积分:" jifen if [ $jifen -ge 90 ];then     echo "神功盖世" elif [ $jifen -ge 80 ];then     echo "登堂入室" elif [ $jifen -ge 70 ];then     echo "初窥门道" elif [ $jifen -ge 60 ];then     echo "初学炸道" else     echo "婴儿" fi +++++++++++++++++++++++++++++ 猜数字游戏: #!/bin/bash num=$((RANDOM%100)) for i in {1..6} do read -p "有个随机数[0-99],你猜:"guess if [ $guess -eq $num ];then     echo "恭喜,猜对了,猜了$i次"     exit elif [ $guess -gt $num ];then     echo "您猜大了,猜了$i次" else     echo "您猜小了,猜了$i次" fi done-eq if [ $guess  $num ];then     if [ $guess -eq 10 ];then        echo 对,而且中奖     fi else     echo 错了 fi if [];then     命令 elif     命令 fi read -p 请输入数字: num if [ $num -eq 2 ] +++++++++++++++++++++++++++++ #!/bin/bash read -p "请输入数字:" num if [ -z $num ];then     echo "没有东西"     exit fi jieguo=`echo "$num*1" |bc` if [ $jieguo -eq 0 ];then     echo "不是数字"     exit fi if [ $num -eq 2 ];then     echo "ok" else     echo "OOOO" fi