-------------------------------------------------------------------------------------------------------- [条件判断] 1. 按文件类型进行判断 -b 文件    判断该文件是否存在,并且为块设备文件(是块设备文件为真) -c 文件    判断该文件是否存在,并且为字符设备文件(是字符设备文件为真) -d 文件    判断该文件是否存在,并且为目录文件(是目录为真) -e 文件    判断该文…
一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备文件为真) -d 文件 判断文件是否存在,并且是否为目录文件(是目录文件为真) -e 文件 判断文件是否存在,(存在为真) -f 文件 判断文件是否存在,并且是否为普通文件(是普通文件为真) -L 文件 判断文件是否存在,并且是否为符号链接文件(是符号链接文件为真) -p 文件 判断文件是否存在,并…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 六.条件判断 1.基本语法 [ condition ](注意condition 前后要有空格) 注意:条件非空即为true,[ webcode ]返回true,[]返回false 2.常用判断条件 (1)两个整数之间比较 = 字符串比较 -lt 小于(less than)                   -le 小于等于(less equal) -eq 等于(equal)             …
1.条件判断式 按照文件类型进行判断: 两种判断格式: test -e /root/install.log [ -e /root/install.log ] 判断命令是否正确执行: [ -d /root ] && echo "yes" || echo "no" 按文件权限判断: 两个文件之间的比较: [ /root/stu.txt -ef /tmp/stu.txt] 两个整数之间的比较: 字符串的判断: a=21,b=56 [ "$a&qu…
一.条件测试操作 1.test 用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数值 格式:test 表达式 2.常见的测试类型 ①测试文件状态 格式:[ 操作符 文件或目录 ] 常用的操作符: -d:测试是否为目录 -f:测试是否为文件 -e:测试文件是否存在 -r:测试当前用户是否有读取的权限 -w:测试当前用户是否有写的权限 -x:测试当前用户是否有执行的权限 -L:测试是否为链接文件 ②字符串比较 格式:[ 字符串1 = 字符串2 ] [ 字符串1 !=…
之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及“二元”两种.如“-f 文件”可测试文件是否存在,运算符 -f 后接一个操作数“文件”,这种判断式称为“单元”:如“参数 1 -gt 参数2”可测试“参数1”的值是否大于“参数2”,运算符 -gt 的左右各接一个要比较的参数,这种判断式称为“二元”.大多数“单元”的判断式用于判断文件的相关属性,少数…
第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可包括管道命令,例如:命令1 | 命令2 | 命令3,称为 pipeline,其结束状态为最后一个命令执行的结果. 举例: #!/bin/bash if grep -q "rm" fn.sh; then echo "find in command." else echo…
变量 定义变量 可以使用export和readonly来设置变量,export用于修改或打印环境变量,readonly则使得变量不得修改.语法: export name[=word] ... readonly name[=word] ... 可以export/readonly时就给变量赋值,或给变量赋值后再export/readonly变量,如: export website=oseye.net age=22 export age 比较常用的exoprt,它是把变量放进环境中,新的进程可以从其父…
本章内容: 变量 运算 if语句 for语句 while语句 break.continue 实例 shell变量 1.shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储:这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量…
在Bash Shell中,流程控制命令有2大类:“条件”.“循环”.属于“条件”的有:if.case:属于“循环”的有:for.while.until:命令 select 既属于“条件”,也属于“循环”.不管是哪一种,均需进行条件测试,再根据测试结果,决定程序流程进行的方向. 以下逐一说明这些命令的用法. 第一节:命令的结束状态 Bash Shell Script 可由许多命令组成.每一个命令执行后,都会传回一个结束状态值,如果执行成功,传回0,如果执行失败,则传回非0值.执行失败,也分成许多状…
Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); } else { // 不做任何事情 } 在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else. if else if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适…
// echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hello 显示 xxx read 参数 -p 提示文字 -n 输入的字符长度 -t 输入限时 -s 隐藏输入内容 输入时不显示 read -p '请输入密码' -s password 输入 echo $password // 显示刚才输入的字符 2.echo -e "11111\n2222" /…
[ -a FILE ]  如果 FILE 存在则为真.  [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真.  [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则为真.  [ -d FILE ]  如果 FILE 存在且是一个目录则为真.  [ -e FILE ]  如果 FILE 存在则为真.  [ -f FILE ]  如果 FILE 存在且是一个普通文件则为真.  [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真. [ -h FI…
常用系统变量 1)         $0 当前程式的名称 2)         $n 当前程式的第n个参数,n=1,2,…9 3)         $* 当前程式的任何参数(不包括程式本身) 4)         $# 当前程式的参数个数(不包括程式本身) 5)         $$ 当前程式的PID 6)         $! 执行上一个指令的PID(似乎不行?) 7)         $? 执行上一个指令的返回值 条件判断:expression为字符串操作 1)         -n str…
while循环: 介绍:while循环是不定循环,也称作条件循环.只要条件判断成立,循环就会一直继续执行,直到条件判断不成立,循环才会停止,这就是和for的固定循环不太一样了. while [ 条件判断 ] do 程序 done 示例: [root@localhostA1 bash]# vi while1.sh #!/bin/bash #从1到100 i= s= ] ;do s=$(( $s+$i )) i=$(( $i+ )) done echo "The sum is :$s" […
1.单分支if条件语句 if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 注意事项: 1.if语句使用fi结尾,和一般语言使用大括号结尾不同 2.[ 条件判断式 ]就是使用test命令判断,所以中括号和条件判断式之间必须有空格 前后都要有 3.then后面跟符合条件之后执行的程序,可以放在[]之后,用";"分号分割.也可以换行写入,就不需要";"了 例如:判断分区使用率 脚本说明: 我的根分区是/dev/sdb5…
算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge (( )):><>=<== [root@monitor ~]# if (( 2 == 3));then echo '123'; fi [root@monitor ~]# if (( 2 >= 3));then echo '123'; fi [root@monitor ~]# if (( 2 <= 3));then echo '123'; fi 123[root@monitor ~]#…
多重条件判断 多个条件判断一起使用 测试选项 作用 判断1 -a 判断2 逻辑与,判断1和判断2都成立,最终的结果才为真 判断1 -o 判断2 逻辑或,判断1和判断2有一个成立,最终的结果就为真 ! 判断 逻辑非,使原始的判断式取反 格式 [ 判断 选项 判断] [ ! 判断] 例子 a=11 [ -n "$a" -a "$a" -gt 22 ] && echo True || echo False #判断变量a是否有值,同时判断变量a的是否大于22…
case的语法结构: case 待测项 in 样式串1] 命令区域1 ;; (样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac 命令区域,可以是单一指令或多行指令,但最后一个指令要以 ;; 结束. 样式串行可用字符串和通配符组成,默认会区别大小写. 如果样式串行有好几个字符串要对比,要使用 | 隔开.字符 | 有 “或”的意思,意即:只要符合其中之一,就算比较成功. 样式串行可写成‘(样式串行)’,或省略左边的括号,写成 '样式串行)'.一般,以后面这个…
没啥好说的,直接从demo里看吧!(1) if 语句shell脚本的if语句格式如下: 判断输入两个参数的大小,执行结果如下 (2)for 循环for循环语法格式如下: 执行结果如下 (3)while 语句 死循环 (4)until 循环until 循环执行一系列命令直至条件为 true 时停止.until 循环与 while 循环在处理方式上刚好相反.一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用.until 语法格式: 运行结果:…
1.if if的语法格式 if conditon then command1 command2 ``` commandn fi 2.if else if conditon then command1 command2 ``` commandn else command1 command2 ``` commandn fi 3.if elseif else if conditon then command1 command2 ``` commandn else if conditon command…
在linux的shell中 if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句: if ... else ... fi 语句: if ... elif ... else ... fi 语句. 1) if ... else 语句 if ... else 语句的语法: if [ expression ] then Statement(s) to be executed if expression is true f…
while循环的语法: while 条件测试 do     命令区域 done 举例: #!/bin/bash declare -i i=1 declare -i sum=0 while ((i<=10)) do let sum+=i let ++i done echo $sum 使用while, 读取文件内容 while循环,经典的用法是搭配转向输入,读取文件的内容,做法如下: #!/bin/bash while read line do echo $line done < cvsfile…
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 int…
1. 文件判断表达式 -e filename:如果 filename 存在(exist),则为真: -d filename:如果 filename 为目录(directory),则为真: -f filename:如果 filename 为常规文件,则为真: -L filename:如果 filename 为符号链接,则为真: -r filename:如果 filename 可读,则为真: -w filename:如果 filename 可写,则为真:-x filename:如果 filename…
for循环的运作方式,是将 串行 的元素的元素一一取出,依序放入制定的变量中,然后重复执行含括的命令区域(在 do 与 done 之间),直到所有元素取尽为止. 其中,串行是一些字符串的组合,彼此用 $IFS 所定义的 分隔符(如空格符)隔开,这些字符串称为字段. for的语法结构如下: for 变量 in 串行 do     命令区域 done 举例: for i in 1 2 3 4 do echo $i done for循环的语法中,“in串行”这段可以省略不写,此时,Bash会由命令行读…
一.数值判断 INT1 -eq INT2           INT1和INT2两数相等为真 INT1 -ne INT2           INT1和INT2两数不等为真 INT1 -gt INT2            INT1大于INT1为真 INT1 -ge INT2           INT1大于等于INT2为真 INT1 -lt INT2             INT1小于INT2为真 INT1 -le INT2             INT1小于等于INT2为真   二.字符…
for循环的语法: 1.  for 变量 in 值1 值2 值3.... do 程序 done 例如:下列脚本会分别打印4次 分别是morning noon afternoon evening的值 #!/bin/bash #打印时间 #Author Mrfeng for time in morning noon afternoon evening do echo $time done 例如批量解压缩: #!/bin/bash #批量解压缩脚本 #Author: Mrf path=/opt/lam…
-b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目录,则为真 -e file 若文件存在,则为真 -f file 若文件存在且是一个规则文件,则为真 -g file 若文件存在且设置了SGID位的值,则为真 -h file 若文件存在且为一个符合链接,则为真 -k file 若文件存在且设置了"sticky"位的值 -p file 若文件存在且为一已命名管道,则为真 -r file 若文件存…