1 if条件语句的知识与实践
注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误
if条件语句
if条件语句的语法
方式1:if <条件表达式>
then
指令
fi
方式2 : if <条件表达式>; then ##;表示换行
指令
fi
2 $ if [ 1 -eq 1 ]; then echo "Matched!"; fi
Matched!
在本声明中,我们进行一对一的比较。请注意,-eq 表示等于。要执行相反的操作,可以使用 -ne,这意味着不等于,如以下示例所示:
$ if [ 0 -ne 1 ]; then echo "Matched!"; fi
Matched!
3 嵌套的if if和它下面最近的fi 成对搭配
if <条件表达式>
then
if <条件表达式>
指令
fi
fi
[-f "$file1"];then && echo 1 等价于下面的if条件语句
if [-f "$file1"];
then
echo 1
fi
4 为了方便大家记忆 if单分支结构 可用中文理解
相当于一个女孩对你说
如果 你有房
那么
我就嫁给你
果如
if <条件表达式>
then
指令
fi
清除日志文件的脚本
#! /bin/bash
LOG_DIR=/var/log
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ] #root的uid等于0不是管理用户则终止程序退出脚本
then
echo "Must is root to this script"
exit 1 # 退出脚本
fi
# 如果切换用到指定目录不成功 则给出提示 并终止程序运行
cd $DIR || { #普通用户无法cd 不能运行该脚本
echo "cannot change to necessary directory "
exit 1 #退出脚本
}
#经过上面2次判断后 此处的用户权限和路径就是对的了 只有清空成功了才打印成功>的提示
cat /dev/null > messages && {
echo "Logs cleaned up. "
exit 0 # 退出之前返回0 表示成功 返回1 表示失败
}
echo "Logs cleaned up fail."
exit 1 # exit 1 退出脚本 1表示失败
5 .if语句常用命令选项有:
== or =: 等于
-eq : 等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
命令选项 描述
if [ a = b ] a与b是否相等 (a、b是数值)
if [ a -ge b ] a 是否大于等于 b
if [ a -gt b ] a 是否大于 b
if [ a -le b ] a 是否小于等于 b
if [ a -lt b ] a 是否小于 b
if [ a -ne b ] a 是否不等于 b
if [ str1 = str2 ] str1是否与str2相同(str1、str2是字符串)
if [ str1 != str2 ] str1是否与str2不同
if [ str1 < str2 ] str1是否小于str2
if [ str1 > str2 ] str1是否da于str2
if [ -n str ] 判断str长度是否非零
if [ -z str ] str长度是否为0
if [ -d file ] 判断file是否为一个目录
if [ -e file ] 判断file是否存在
if [ -f file ] 检查file文件是否存在
if [ -r file ] 判断file是否存在并可读
if [ -s file ] 判断file是否存在并非空
if [ -w file ] 判断file是否存在并可写
if [ -x file ] 判断file是否存在并可执行