linux basic knowledge

shell脚本学习(五)[循环嵌套]

2020-01-22  本文已影响0人  巩翔宇Ibrahimovic

Chapter23 循环的嵌套和break,continue语句

循环的使用

1.循环和循环可以嵌套

#查找并显示目录下的所有脚本文件
for sc_name in /etc/profile.d/*.sh
do
  echo $sc_name
done
#判断脚本文件是否有可执行权限
for sc_name in /etc/profile.d/*.sh
do
   if [ -x $sc_name ] ; then
         . $sc_name
   fi
done

2.循环中可以嵌套判断,反过来也可以嵌套

3.循环可以使用break和continue语句在循环中退出

#break的使用
for num in {1..9}
do
   if [ $num -eq 5 ] ; then 
   break
   fi
   echo $num
done  #输出的结果是 1 2 3 4 

#continue的使用
for num in {1..9}
do
   if [ $num -eq 5 ] ; then 
   continue
   fi
   echo $num
done  #输出的结果是 1 2 3 4 6 7 8 9 ,因为到5的时候执行continue,条件结束,不会打印出5,然后继续执行循环。

Chapter24 使用循环处理位置参数

命令行参数可以使用 $1 $2 ... ${10}...$n 进行读取

$0 代表脚本名称

* 和@代表所有位置参数

$# 代表位置参数的数量

vim 13.sh
#!/bin/bash
# help display help help
for pos in $*
do
    if [ "$pos" = "help" ]; then
        echo $pos $pos
    fi
done
#使用while进行位置参数的处理
while  [ $# -ge 1 ]
 do
  if [ "$1" = "help" ]; then
         echo $1 $1
  fi
  shift
 done

小tips:进行代码的批量注释
在vim模式下,使用ctrl+v进入可视化模式,移动光标选中要进行批量注释的代码块,再按shift+i在第一行进行插入#,最后按两下Esc完成批量注释。

Chapter25 自定义函数

函数用于"包含"重复使用的命令集合

自定义函数模板

​ function fname(){

​ 命令

​ }

#自定义函数,结合cd和ls的功能,function可以省略
function cdls() { 
cd /var
ls
}
cdls #定义完成后直接执行
unset cdls #取消定义的函数

函数作用范围的变量

#定义一个可以进入到任一目录的函数
cdls() {
cd $1
ls
}

cd /tmp

local 变量名:只在函数内部生效

Chapter26 系统函数库介绍

系统脚本

系统自建了函数库,可以在脚本中引用

/etc/init.d/functions

自建函数库

使用 source 函数脚本文件 "导入"函数

上一篇 下一篇

猜你喜欢

热点阅读