美文网首页
bash脚本编程

bash脚本编程

作者: 麟之趾a | 来源:发表于2020-05-15 18:53 被阅读0次

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为真退出

相关文章

网友评论

      本文标题:bash脚本编程

      本文链接:https://www.haomeiwen.com/subject/virhohtx.html