bash脚本之编程交互
- 脚本参数
- 用户交互,通过键盘输入数据,从而完成变量的赋值操作
read [option] NAME
-p 提示信息
-t 输入超时时间
[root@db02 ~]# read NAME AGE
cao 21
[root@db02 ~]# echo $NAME
cao
[root@db02 ~]# echo $AGE
21
[root@db02 ~]# read NAME AGE SEX
cao 22
[root@db02 ~]# echo $NAME
cao
[root@db02 ~]# echo $AGE
22
[root@db02 ~]# echo $SEX
[root@db02 ~]# read NAME AGE
cao 22 man
[root@db02 ~]# echo $NAME
cao
[root@db02 ~]# echo $AGE
22 man
[root@db02 ~]# read -p "please input your name" NAME
please input your namecao
[root@db02 ~]# echo $NAME
cao
bash -n 脚本 检查脚本文件语法是否有错误
bash -x 脚本 调试执行
shell语言执行顺序
- 顺序执行
- 选择执行 if case
- 循环执行 for ,while,until
选择执行
- &&,||
- if 语句
- case语句
if 语句
# 单分支if语句
if CONDITION;then
if-true-分支
fi
#多分支if语句
if CONDITION;then
if-true-分支
else
if-false-分支
fi
if CONDITION;then
条件1为真分支
elif CONDITION;then
条件2为真分支
elif CONDITION;then
条件3 为真分支
...
elif CONDITION; then
条件n,为真分支
else
所有条件均不满足时的分支
fi
# 注意:分支只会执行其中一个,首先测试为真先执行,if语句可嵌套
循环说明
循环执行:将一段代码重复执行0次,1或多次
进入条件: 只要条件满足时,才会进行循环
退出条件:每个循环体都应有退出条件,已有机会退出循环
for 循环格式
两种格式:
1) 变量列表
2)控制变量
for VARAIBLES IN LIST;do
循环体
done
进入条件:只要列表中有元素,即可进入循环
退出条件:列表中的元素遍历完成
LIST:
1) 直接给出
2)整数列表
a) {start..end}
b) seq [start] [incremtal] last
seq 1 2 10 生成奇数列表
seq 10
seq 1 10
3) 返回列表命令
列表返回的内容已回车符或空格为分隔符`ls /`
返回命令列表的命令使用通配符
4) 变量引用 $@,$*
# 求100以内整数之和
[root@ceshi srcipts]# cat sum.sh
#!/bin/bash
declare -i sum=0
for i in {1..100};do
let sum+=$i
done
echo $sum
while 循环
while CONDTION;do
循环体;
循环控制变量修正表达式
done
CONDTION 为真进入,CONDTION为假退出
# 求100之内整数之和
[root@ceshi srcipts]# cat while.sh
#!/bin/bash
declare -i sum=0
declare -i i=1
while [ $i -le 100 ];do
sum=$[${sum}+${i}]
let i++
done
echo $sum
如果计算1到10万,for中LIST列表,10万个数据都得先加载到内存中,while只有一个变量放在内存,在大数据量的情况下,for性能低下
until循环
until CONDITION do;
循环体
循环控制变量修正表达式
done
until CONDTION为假进入,CONDITON为真退出
网友评论