我是靠谱客的博主 羞涩蜜蜂,最近开发中收集的这篇文章主要介绍shell脚本1——分支结构、循环、函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

重要的写在前头
因为linux的shell中默认是字符串,所以 sum= 1+ 2,如果传入的参数为两个数字 1 4,这个它返回的是1+4,并不是5,若要让它显示的是5的话,有如下方法:
1、 sum= [ 1+2]2letsum=1+$2

一、if语句
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)指定的设备为终端时为真
3、复杂逻辑判断
-a         与
-o        或
!        非

例子

  1 #!/bin/bash
  2
  3 sum=5
  4
  5 if [ $sum -eq 5 ];
  6 then
  7 echo "sum is $sum"
  8 else
  9 echo "sum is not 5"
 10 fi

在测试中,发现有时候提示 ./test.sh: 第 5 行: [: -eq: 期待一元表达式
当出现这个时,不一定是语法问题,有可能是程序运行的问题
解决方案:重新再创建一个.sh文件,重新运行看看

二、case 语句

case $var(变量) in
a) echo XXX
;;
b) echo XXX
;;
*) echo XXX
;;
esac

 12 case  $sum in
 13     5) echo "sum is $sum"
 14     ;;
 15     *) echo "sum is not 5"
 16     ;;
 17     esac
 18

三、级联符号
&& 前面为真时 ||前面为假时

四、循环语句
for in
for $var in {1..100} do
/语句/
done
例子:

20 for I in {1..100};do
 21 if [ $[$I%3] -eq 0 ];then
 22 let  xum+=$I
 23  fi
 24  done
 25  echo "the sum is:$xum"

while
while [ /条件为真/ ]
do
/语句/
&&break 有条件停下
done

 var1=1
 28 xum=0
 29  while [ $var1 -lt 100 ]  #var < 100  条件为真
 30  do
 31     let xum+=$var1
 32     let var1+=1
 33    #[ $var1 -eq 100 ]&&break;   #var=100
 34  done
 35 echo "sum is $xum"

until
until [ /条件为假/ ]
do
/语句/
&&break 有条件停下
done

  var2=1
 38 xum=0
 39  until [ ! $var2 -lt 100 ]  #var < 100   条件为假
 40  do
 41     let xum+=$var2
 42     let var2+=1
 43     #[ $var2 -eq 100 ]&&break;   #var=100
 44  done
 45  echo "sum is $xum"

五、shell函数

  1 #!/bin/bash
  2
  3 hello()
  4 {
  5     echo " $1, Hello World"//原来这里的$1不是从外传进来的参数,单单是函数名传进来的参数
  6 }
  7
  8 hello  你好

六、shell变量替换
临时赋值
var:xxxvarxxx {var:+xxx} 如果var已被设置(里面有值),则强制设置为xxx

永久赋值
var:=xxxvarxxx {var:?string} 如果var未被设置,则将输出错误信息string

替换
var/xx/yyvarxxyy {var//xx/yy} 将var里面的所以的xx替换成yy

最后

以上就是羞涩蜜蜂为你收集整理的shell脚本1——分支结构、循环、函数的全部内容,希望文章能够帮你解决shell脚本1——分支结构、循环、函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部