• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

XiaoXiaoli

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

shell编程_test命令

bash shell提供了在if-then语句中声明test命令的方法:

  if [ condition ]

  then

    commands

  fi

 

  方括号中定义了test命令中用到的条件。

  注意,必须在方括号内两侧加括号,否则会报错。

  

test命令可以判断三类条件,数值比较、字符串比较、文件比较。 

数值比较

数值进行比较的参数是两个字母。

n1 -eq n2 检查n1与n2是否相等
n1 -ge n2 检查n1是否大于或等于n2
n1 -gt n2 检查n1是否大于n2
n1 -le n2 检查n1是否小于或等于n2
n1 -lt n2  检查n1是否小于n2
n1 -ne n2 检查n1是否不等于n2

 

#! /bin/bash

val1=10
val2=11

if [ $val1 -gt 5 ]
then
        echo "The test value $val1 is greater than 5"
fi

if [ $val1 -eq $val2 ]
then
        echo "The values are equal"
else
        echo "The values are different"
fi

  

字符串比较

str1 = str2 检查str1是否和str2相等
str1 != str2 检查str1是否和str2不相等
str1 < str2 检查str1是否比str2小
str1 > str2 检查str1是否比str2大
-n str1 检查str1的长度是否非0
-z str1 检查str1的长度是否为0

 

 

 

 

文件比较

-d file 检查file是否存在并是一个目录
-e file 检测file是否存在
-f file 检测file是否存在并是一个文件
-r file 检测file是否存在并可读
-s file 检测file是否存在并非空
-w file 检测file是否存在并可写
-x file 检测file是否存在并可执行
-O file 检测file是否存在并属当前用户所有
-G file 检测file是否存在并默认组与当前用户相同
file1 -nt file2 检查file1是否比fiel2新
fileq -ot file2 检查file1是否比file2旧

 

-f举例,~/.bash_profile文件中使用-f

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

  

-d检测目录是否存在案例:

#! /bin/bash

#如果检测的目录存在,就进入到该目录,并显示所有内容 if [ -d $HOME ] then echo "Your HOME directory exists" cd $HOME ls -a else echo "There is a problem with your Home directory" fi

  

 

复合条件测试

常见命令行参数符号 

$# 参数的个数,不包括命令本身

-o 逻辑或 [ EXPR1 -o EXPR2]

if [ $# -lt 2 -o $# -gt 3 ] ;then
  echo "命令行参数个数错误"  
fi

 

posted on 2021-08-19 21:06  XiaoXiaoli  阅读(78)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3