shell-02

来源:互联网 发布:nvm windows 淘宝镜像 编辑:程序博客网 时间:2024/04/30 06:03

一 整数运算的命令

++ -- +=  -+ *= /= -=
++
自加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








 

1 0
原创粉丝点击