前言:
无论什么编程语言都离不开条件判断。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.
=========================
$n 该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2...)
$? 前一个命令执行后的退出状态
$# 提供脚本的参数号
$* 所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
$0 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径
$@ 所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于$1$2
$$ 当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID
$! 前一个后台命令的进程号
相关推荐
Shell各种判断结构和运算符的用法是shell编程的基础,了解shell的判断、运算符和一些退出状态对后面的学习有很重要的影响。shell有一个内部命令test经常用于对判断语句进行测试一种或几种状态的条件是否成立
shell中条件判断if中的-z到-d的意思
shell中条件判断if中的-z到-d的意思.txt
主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结,需要的朋友可以参考下
详细描述了shell脚本中,if判断文件时用到字母参数的含义,,以及逻辑判断的意义如:-nt/-ot/-ef等等
【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二) shell中的if 单分支 if 条件测试 ;then 命令序列 fi 双分支 if 条件测试 ;then 命令序列1 else 命令序列2 fi 多分支 if 条件测试 ;...
Linux运维-3.Shell编程-12 shell编程-136条件判断3.avi
Linux运维-3.Shell编程-12 shell编程-134条件判断1.avi
Linux运维-3.Shell编程-12 shell编程-135条件判断2.avi
day2判断大小以及if条件语句shell编程.txt
4.条件判断结构与循环结构 5.函数的定义和使用 三、预备知识 1、LINUX环境下常用命令和VI编辑器的操作。 2、了解Shell作用和主要分类等基础知识。 四、实验设备及工具 软件:PC机操作系统REDHAT ELAS4环境 五、...
使用专门的测试工具——test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)。 使用test测试命令时,包括以下两种形式: test 条件表达式 [ 条件表达式 ] 这两种方式的...
判断条件语句(条件判断语句) if语句 格式一: 思想:只关注条件成立之后的操作 if [ 判断条件 ] then 语句块(指的是条件成立之后要做的事情) fi 格式二:思想:不管条件是否成立,都有对应的操作 if [ 判断条件 ]...
12Shell 条件判断案例.mp4 13Shell 回顾.mp4 14Shell if案例.mp4 15Shell Case案例.mp4 16Shell For1案例.mp4 17Shell For2案例.mp4 18Shell While案例.mp4 19Shell Read案例.mp4 20Shell BaseName&DirName案例.mp4...
Linux常用命令和管理08-shell之脚本编程条件判断及算术运算1
Shell 编程基础;熟悉 Shell 基础知识 掌握 Shell 脚本的基本操作 ...多分支判断语句;循环语句;for 循环;for 循环中的列表;for 循环奇数累加器;for 循环文件展示;while 循环;until 循环;使用循环打印乘法表;谢谢
shell编程 创建shell脚本 ①创建第一个shell脚本②运行shell脚本shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句...
解:Shell解析器、变量、运算符、条件判断、流程控制、函数、cut、sed、awk、sort和企业真题(京东、搜狐、新浪等)。课程中全程以 案例贯穿,深入浅出 。 课程目录: 01_尚硅谷_Shell_课程介绍.avi 02_尚硅谷_...
11.4 Shell编程-条件判断.mp4 11.5.1 Shell编程-流程控制-if语句.mp4 11.5.2 Shell编程-流程控制-case语句.mp4 11.5.3 Shell编程-流程控制-for循环.mp4 11.5.4 Shell编程-流程控制-while循环与until循环.mp4
《跟老男孩学Linux运维:Shell编程实战》第二部分为第5章~第8章,着重讲解变量的多种数值运算、条件测试与比较、if条件判断语句、Shell函数等相关的知识。《跟老男孩学Linux运维:Shell编程实战》第三部分为第9章~第...