前言:      无论什么编程语言都离不开条件判断。SHELL也不例外。

if list then

do something here

elif list then

do another thing here

else

do something else here

fi

EX1:

#!/bin/sh

SYSTEM=`uname -s`    #获取操作系统类型,我本地是linux

if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串

echo "Linux"

elif [ $SYSTEM = "FreeBSD" ] ; then

echo "FreeBSD"

elif [ $SYSTEM = "Solaris" ] ; then

echo "Solaris"

else

echo "What?"

fi     #ifend

基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。

1、字符串判断

str1 = str2      当两个串有相同内容、长度时为真

str1 != str2      当串str1和str2不等时为真

-n str1        当串的长度大于0时为真(串非空)

-z str1        当串的长度为0时为真(空串)

str1           当串str1为非空时为真

2、数字的判断

int1 -eq int2    两数相等为真

int1 -ne int2    两数不等为真

int1 -gt int2    int1大于int2为真

int1 -ge int2    int1大于等于int2为真

int1 -lt int2    int1小于int2为真

int1 -le int2    int1小于等于int2为真

3、文件的判断

-r file     用户可读为真

-w file     用户可写为真

-x file     用户可执行为真

-f file     文件为正规文件为真

-d file     文件为目录为真

-c file     文件为字符特殊文件为真

-b file     文件为块特殊文件为真

-s file     文件大小非0时为真

-t file     当文件描述符(默认为1)指定的设备为终端时为真

4、复杂逻辑判断

-a         与

-o        或

!        非

结尾

语法虽然简单,但是在SHELL里使用的时候,他的功能变得强大了。

=====================================================================

附 表:

[ -a FILE ]  如果 FILE 存在则为真。

[ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真。

[ -c FILE ]  如果 FILE 存在且是一个字特殊文件则为真。

[ -d FILE ]  如果 FILE 存在且是一个目录则为真。

[ -e FILE ]  如果 FILE 存在则为真。

[ -f FILE ]  如果 FILE 存在且是一个普通文件则为真。

[ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 [ -h FILE ]  如果 FILE 存在且是一个符号连接则为真。

[ -k FILE ]  如果 FILE 存在且已经设置了粘制位则为真。

[ -p FILE ]  如果 FILE 存在且是一个名字管道(F如果O)则为真。

[ -r FILE ]  如果 FILE 存在且是可读的则为真。

[ -s FILE ]  如果 FILE 存在且大小不为0则为真。

[ -t FD ]  如果文件描述符 FD 打开且指向一个终端则为真。

[ -u FILE ]  如果 FILE 存在且设置了SUID (set user ID)则为真。

[ -w FILE ]  如果 FILE 如果 FILE 存在且是可写的则为真。

[ -x FILE ]  如果 FILE 存在且是可执行的则为真。

[ -O FILE ]  如果 FILE 存在且属有效用户ID则为真。

[ -G FILE ]  如果 FILE 存在且属有效用户组则为真。

[ -L FILE ]  如果 FILE 存在且是一个符号连接则为真。

[ -N FILE ]  如果 FILE 存在 and has been mod如果ied since it was last read则为真。

[ -S FILE ]  如果 FILE 存在且是一个套接字则为真。

[ FILE1 -nt FILE2 ]  如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not则为真。

[ FILE1 -ot FILE2 ]  如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。

[ FILE1 -ef FILE2 ]  如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

[ -o OPTIONNAME ]  如果 shell选项 “OPTIONNAME” 开启则为真。

[ -z STRING ]  “STRING” 的长度为零则为真。

[ -n STRING ] or [ STRING ]  “STRING” 的长度为非零 non-zero则为真。

[ STRING1 == STRING2 ]  如果2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。

[ STRING1 != STRING2 ]  如果字符串不相等则为真。

[ STRING1 < STRING2 ]  如果 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。

[ STRING1 > STRING2 ]  如果 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。

[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.

linux脚本条件判断或,Shell脚本IF条件判断和判断条件总结相关推荐

  1. Linux 之旅 10:Shell 脚本

    Linux 之旅 10:Shell 脚本 (图片来自shell/bash脚本编程) Linux 上的 Shell 脚本可以看做是类似于Windows上的批处理程序(.bat)一样的东西,其本质就是将一 ...

  2. 标杆徐linux云计算视频,标杆徐2018 Linux自动化运维系列④: Shell脚本自动化编程实战...

    2019年录制SHell新课地址 贴切企业脚本编写思路讲解,带你玩Shell脚本编程实战. 本套课程从实际项目案例出发,近100个Shell实例讲解,由浅入深,循序渐进,带你玩转Shell编程的方方面 ...

  3. LINUX下的流量监控shell脚本

    这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...

  4. Linux系统一键安全加固shell脚本编写思路

    本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...

  5. 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...

  6. linux cc脚本,Linux运维知识之Linux简单处理CC攻击shell脚本

    本文主要向大家介绍了Linux运维知识之Linux简单处理CC攻击shell脚本,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 第一个脚本是通过查找日志中访问次数过多的ip,并 ...

  7. 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本

    摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...

  8. 如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)

    文章目录 1.创建并运行第一个 shell 脚本 2.将 shell 脚本转换为 bash 脚本 3.为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头? 4. ...

  9. Linux服务器监控cpu数据shell脚本

    Linux服务器监控cpu数据shell脚本 背景: 一种简易的监控进程的CPU.内存.线程数.句柄数的办法,使用shell脚本实现监控,Excel实现数据分析. #!/bin/bash#过滤出需要的 ...

最新文章

  1. 解决烦人的img与input不能水平对齐的问题
  2. 内存技术:入门和测试挑战
  3. 《编写有效用例》导读书评——“Jolt大奖精选丛书”有奖征文
  4. SDWebImage源码阅读(三)UIImage+GIF
  5. [攻防世界 pwn]——hello_pwn
  6. Python之SQLAlchemy学习
  7. 中立安全、赋能产业,UCloud优刻得凭差异化路线进军产业互联
  8. Apprentissage du français partie 3
  9. ffmpeg播放器 android,Android使用FFmpeg(六)--ffmpeg实现音视频同步播放
  10. MyBatis Invalid bound statement (not found)问题 -- 记一次与空气的斗智斗勇
  11. Tip: 强制 Outlook 用户使用缓存模式
  12. 高德地图报Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:
  13. sql date_format用法
  14. 微信小程序 实现上拉加载
  15. 201809-4 再卖菜 ccf
  16. 海雀口中美食遭贪吃海鸥打劫
  17. 液体点滴速度监控报警装置(51单片机)
  18. goto的理解与使用
  19. 初用xilinx EDK10.1的XMD遇到的一些问题
  20. 期货换手多换空换(期货交易多换空换是什么意思)

热门文章

  1. 前后端分离开发之Vue跨域
  2. uniapp禁止屏幕自动旋转
  3. linux 进程树id,linux shell杀死进程树
  4. SqlSugar 3.实体配置
  5. 浅谈HTA(HTML Application)和病毒
  6. Activiti6.0版本如何显示在线流程图
  7. 返回一个整数数组中最大子数组的和(升级版)
  8. Jamf Pro 10.27: IT管理员的幸福指数的又一次提升
  9. 【Visual Leak Detector】简介
  10. 这十个坑千万别踩,毫无保留免费分享给你,做自媒体视频赚钱