前言
英雄行险道,富贵似花枝。
目标
主要介绍shell的条件判断,以及对应实例。
关键词
if else case
前置知识
1 判断返回值
在shell里面 0 代表 true 1 代表 false
# 判断是否是文件
[root@localhost scrip]# test -f /usr
[root@localhost scrip]# echo $?
1
[root@localhost scrip]# test -f test.sh
[root@localhost scrip]# echo $?
0
2 shell 传入值接收
bash test.sh start(传入的参数)
接受方式
$1
备注:
如果后面的还有值用 $2 $3 $4 $5 $6 ...${10}...
一 if elif else 判断
语法
if [判断条件] ;then
执行语句
elif [ 判断条件 ] ;then
执行语句
else
执行语句
fi
实例
判断是否是超级管理员
#!/bin/bash
# root user1 other
if [ $USER = root ] ; then
echo "root"
elif [ $USER = user1 ] ;then
echo "user1"
else
if [ -x /tmp/10.sh ] ; then
/tmp/10.sh
fi
echo " other user"
fi
二 case 传入值判断执行
语法
# $1是传入参数变量
case "$1" in
"传入的参数值")
执行语句
;;
"传入的参数值")
执行语句
;;
"传入的参数值"|"传入的参数值")
执行语句
;;
*)
执行语句
;;
esac
实例
传入某个参数执行对应脚本
bash test.sh start
#!/bin/bash
# case demo
case "$1" in
"start"|"START")
echo $0 start.....
;;
"stop")
echo $0 stop.....
;;
"restart"|"reload")
echo $0 restart....
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
;;
esac