liunx 中 if 条件 语句


                                     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是否存在并可执行

7 相关补充: ROOT_UID=0 if [ “$UID” -ne “$ROOT_UID” ]
这段代码的含义是,检查当前用户的UID是否为0,如果不是,则表示当前用户不是root用户,执行该脚本时需要root权限。
其中,ROOT_UID=0是将0赋值给ROOT_UID变量,表示0为root用户的UID。"$UID"是系统环境变量,表示当前用户的UID。
因此,这段代码可以用来确保只有root用户才能执行该脚本,以保证脚本安全和正确性。
如果您想更详细地了解该代码的实现和用法,可以参考相关Linux系统权限控制相关知识。
    
    Linux中如何获取当前用户的UID?
Linux中可以使用命令"echo $UID"或者"id -u"来获取当前用户的UID。其中,$UID是一个环境变量,保存了当前用户的UID。而id命令则是用来显示用户的身份信息,包括UID和GID等。如果需要获取其他用户的UID,可以使用"id -u 用户名"的方式来获取。
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值