概述
重要的写在前头
因为linux的shell中默认是字符串,所以 sum=
1+
2,如果传入的参数为两个数字 1 4,这个它返回的是1+4,并不是5,若要让它显示的是5的话,有如下方法:
1、 sum=
[
1+
一、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:−xxx如果var未被设置,则临时设置为xxx
{var:+xxx} 如果var已被设置(里面有值),则强制设置为xxx
永久赋值
var:=xxx如果var未被设置,则永久设置为xxx
{var:?string} 如果var未被设置,则将输出错误信息string
替换
var/xx/yy将var里面的第一个xx替换成yy
{var//xx/yy} 将var里面的所以的xx替换成yy
最后
以上就是羞涩蜜蜂为你收集整理的shell脚本1——分支结构、循环、函数的全部内容,希望文章能够帮你解决shell脚本1——分支结构、循环、函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复