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
- shell-02
- shell编程日记---02
- shell基础知识02
- Linux Shell初探02
- shell脚本学习02
- Shell笔记-02
- Shell变量~02
- Bash-Shell-02
- shell脚本02
- shell 基础02
- shell
- shell
- shell
- shell
- shell
- Shell
- shell
- Shell
- 写在元宵节
- poj3686(*最小费用流-转化成普通指派问题)
- STL-->vector
- 什么是泛型
- T-SQL 语言基础(一)
- shell-02
- 系统分区
- hibernate框架之主键生成
- mysql-5.6.35-winx64免安装配置
- win xcopy使用
- 头文件找不到整理
- JobGenerator详解
- 抽象类(面积计算问题)
- Hibernate框架