linux shell脚本编程(分支语句、循环语句)

一、分支语句

1、语法结构 :

if 表达式
then 命令表
fi

如果表达式为真 , 则执行命令表中的命令 ; 否则退出 if 语句 , 即执行 fi 后面的语句。
if 和 fi 是条件语句的语句括号 , 必须成对使用 ;命令表中的命令可以是一条 , 也可以是若干条。

2、语法结构为 :

if 表达式
then 命令表 1
else 命令表 2
fi

        如果表达式为真 , 则执行命令表 1 中的命令 , 再退出 if 语句 ; 否则执行命令表 2 中的语句 , 再退出 if 语句 .
        注意 : 无论表达式是否为真 , 都有语句要执行 . 

3、test 命令使用总结

二、多路分支语句 

#!/bin/bash 
 
#学生成绩分级管理
#80-100 A
#60-79  B
#0-59   C
 
read -p "input score: " val
 
#要求输入的范围是0-100
#-o  或
#-a  与
#-!  非
 
#-gt 小于等于
#-lt 大于等于
 
#if [ $val -gt 100 -o $val -lt 0 ]
if [ $val -gt 100 ] || [ $val -lt 0 ]
then
	echo "input error val"
	exit 
fi
 
val=`expr $val / 10`
 
case $val in
	8 | 9 | 10)
			echo "A"
			;;
	6 | 7)
			echo "B"
			;;
	*)
			echo "C"
			;;   #;;只有最后一个模式可以省略,前面不可以
esac
 

三、循环语句

1、for 的用法

        当循环次数已知或确定时,使用 for 循环语句来多次执行一条或一组命令。格式为 :

for 变量名 in 单词表
do
命令表
done

        变量依次取单词表中的各个单词 , 每取一次单词 , 就执行一次循环体中的命令 . 循环次数由单词表中的单词数确定 . 命令表中的命令可以是一条 , 也可以是由分号或换行符分开的多条。
        如果单词表是命令行上的所有位置参数时 , 可以在 for 语句中省略 “ in 单词
表” 部分。 

#!/bin/bash 
#$* 代表一个整体
#$@ 代表一个一个的
filename=`ls`
for file in $filename
do
	if [ -f $file ]
	then
		echo "$file is a file"
	else
		echo "$file is not a file"
	fi
done
#!/bin/bash 
#for file in 1 2 3 4 5 
for ((i = 0; i < 5; i = i+1))
do
	echo "$i"
done

2、while用法

语法结构为:

while 命令或表达式
do
命令表
done

        while 语句首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后再测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。
        while 语句的退出状态为命令表中被执行的最后一条命令的退出状态。

3、break 和 continue

        break n 则跳出 n 层 ;
        continue 语句则马上转到最近一层循环语句的下一轮循环上 ,continue n 则转到最近 n 层循环语句的下一轮循环上 . 

四、函数的定义

1、基本语法:

function name() {
statements
[return value]
}

function 是 Shell 中的关键字,专门用来定义函数;
name 是函数名;
statements 是函数要执行的代码,也就是一组语句;
return value 表示函数的返回值,其中 return 是 Shell 关键字,专门用在函数中返回一个值;这一部分可以写也可以不写。 

#!/bin/bash 

function fun(){
	echo "hello word"
	return 0
}

fun
#$? 获取函数的返回值
echo $?

2、函数的调用 

3、变量的作用域 

全局作用域:在脚本的其他任何地方都能够访问该变量。
局部作用域:只能在声明变量的作用域内访问。
声明局部变量的格式:

Local variable_name =value 

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值