浅谈shell的一些循环格式
1.while的格式
x=1 while((x<=10));do if[$x=="2"-o$x=="4"];then #条件x=2或者x=4执行下面语句 x=$[$x+1] continue #跳过本次循环 fi echo"$x" if[$x=="8"];then break #终止循环 fi x=$[$x+1] done #最后输出结果为135678
2.for循环
foriin`seq10`;do echo"$i" done #输出为1-10个数,for循环不是靠判断来循环的是靠列表循环的,seq10这个函数能列出1-10的数值,这些数值就是for循环的列表 foriin`ls`;do echo"$i" done #这个程序最后输出为该文件夹的所有目录及文件夹
3数组
sz=(001122334455) echo"${sz[*]}" #输出所有数值,"@"和"*"效果一样 echo"${#sz[*]}" #输出数值个数 echo"${sz[1]}" #显示指标1的数值,注意默认指标从0开始计算 x=10 sz[$10]=233 echo"${sz[$10]}" #变量的使用,显示第10指标个数值 declare-Asz #定义关联数组,使用非数字格式的必须预先定义下 sz[yi]="111" sz[er]="222" echo"${sz[*]}" echo"${sz[er]}" 显示结果111222 222
4.函数调用
hansu(){ #定义函数 echo"第$1次,函数显示" } hansu1 #调用函数并传递参数,函数内部用$1$2使用变量,和shell用法一样 hansu2 hansu3 最后显示效果; 第1次,函数显示 第2次,函数显示 第3次,函数显示
5.if的使用
if["a"=="a"];then echo"条件满足" else echo"条件不满足" fi #正常使用,满足条件执行第一个语句 if[!"a"=="a"];then echo"条件满足" else echo"条件不满足" fi #加个"!"号,取反值,满足条件,就变成了不满足了
检测文件
if[-e/root/123.txt];then echo"文件存在" else echo"文件不存在" fi -e判断对象是否存在 -d判断对象是否存在,并且为目录 -f判断对象是否存在,并且为常规文件 -L判断对象是否存在,并且为符号链接 -h判断对象是否存在,并且为软链接 -s判断对象是否存在,并且长度不为0 -r判断对象是否存在,并且可读 -w判断对象是否存在,并且可写 -x判断对象是否存在,并且可执行 -O判断对象是否存在,并且属于当前用户 -G判断对象是否存在,并且属于当前用户组 -nt判断file1是否比file2新["/data/file1"-nt"/data/file2"] -ot判断file1是否比file2旧["/data/file1"-ot"/data/file2"]
字符运算
=:检测两个字符是否相等,相等返回真 !=检测两个字符是否不等,不等返回真 -z检测字符串长度是否为0,为0返回真,全是空格返回真 $检测字符是否为空,有值时时候返回真,全是空格返回假
数值比较
x=10 y=5 if[$x-gt$y];then #注意表达式还能这样写if(($x>$y));then效果也是一样的而且更方便于记忆 echo"真" else echo"假" fi #结果返回真 -gt是左边大于右边,返回真同> -lt是小于同< -eq是等于同= -ne是不等于同!= -ge是大于等于同>= -le是小于等于同<=
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。