Linux Shell循环控制符与函数

简介:

 

循环控制符与函数详解

  

break循环控制符;continue循环控制符.

循环控制符

退出整个循环 则可以使用break循环控制符;

退出本次循环后执行后续的循环,使用continue循环控制符;

 

 

#!/bin/bash

while true

do

echo "please enter a operation {1copy| 2delete|3backup|4exit }"

 

read -p " please enter youroperation:" op

 

case $op in

 

    1)

    continue

    echo " copy "

   ;;

 

   2)

 

     echo "delete"

    ;;

  3)

 

    echo "backup"

    ;;

 

    4)

      echo "exit"

 

   ;;

  *)

   echo " error ,try enter { 1 | 2 |3 |4 }  again"

 esac

done

 

 

 

函数详解

1-2-1-函数的定义基本知识

1-2-2-函数的调用

 

函数的定义基本知识

如果遇到很长的路径 做个变量就行

遇到很多重复的操作,做个函数即可

 

函数的基本格式:

name ( )

{

command1

command2

}

 

nginx ( )

{

netstat -anlpt | grep nginx

}

标题是函数的名称,函数体是函数内的命令集合,在编写脚本时要注意标题的唯一

不唯一脚本的执行时则会产生错误

函数不允许出现空命令-函数体中的命令集合必须包含至少一条命令

 

 

定义一个函数:

 

#!/bin/bash

student()                                                               #定义函数

{

       echo "Hello shell!"                                   #函数中的命令

}

echo "Now going to run student()"

student

echo "end the student()"

 

效果:

[root@RHEL7 shell]# sh for1.sh

Now going to run student()

Hello shell!                                                     #函数的执行结果

end the student()

 

注释:

在hanshu.sh中定义了一个简单的函数

首先执行echo “开始执行函数student”

执行student函数

最后执行echo”函数student执行结束”

函数与脚本一样都是依次执行

student(){ à名为student的函数  } 代表结束

 

 

参数的引用即传递

环境:

创建a.txt

[root@RHEL7 shell]# touch a.txt

 

编写脚本:

vim yinyong.sh

#!/bin/bash

delete()

{

       rm-rf $1

       mkdir$2

}

delete /root/shell/aa.txt /root/shell/mydir

 

执行

[root@RHEL7 shell]# sh yinyoug.sh

[root@RHEL7 shell]# ls -ld mydir/

drwxr-xr-x. 2 root root 6 Sep  5 21:53 mydir/

 

 

调用其他模块的函数

source 调用其他脚本的函数

定义一个有不同功能的模块

[root@RHEL7 shell]# cat option.sh

#!/bin/bash

delete()

       {

       rm-rf $del

       }

copy()

       {

       cp-fr $sdir $tdir

       }

backup()

       {

       tarzcvf $tar_name $star_dir &> /dev/null

       }

quit()

       {

       exit

       }

再次编辑一个文件

#!/bin/bash

source /root/shell/option.sh

while true

do

cat <<EOF

******************************

  Thefollowing is optional

******************************

       1)Copy

       2)Delte

       3)Backup

       4)Exit

******************************

EOF

read -p "Please enter youroptions:" option

case $option in

       1)

       read-p "Please input your want to copy the source file:" sdir

       read-p "Please input your target directory:" tdir

       copy

       ;;

       2)

       read-p "Please input your target directory: " del

       delete

       ;;

       3)

       read-p "Please enter your backup file names: " tar_name

       read-p "Please enter your backup file: " tar_dir

       backup

       ;;

       4)

       quit

       break

       ;;

       *)

       echo"$option is not optional operation"

esac

done

 

shift左移

    $1   $2   $3   $4

         $1   $2   $3

每执行一次,参数序列顺次左移一个位置,

10 11 12 13

$1 $2 $3 $4

#!/bin/bash        #如果位置参数小于等于0

if [ $# -le 0 ]    

 then

echo " error ! Not enough parameters"     #输出报错的信息

 

exit 124 

 fi         #退出返回一个值

#定义一个sum变量

sum=0 

#如果位置参数大于0,则成立;

while [ $# -gt 0 ]

do

#运算$sum+$1的和赋值给变量sum

    sum=$(expr $sum + $1)

#参数序列顺次左移一个位置

shift 

done

echo $sum

  本文转自    OpenStack2015 博客,原文链接:       http://blog.51cto.com/andyliu/1846584 如需转载请自行联系原作者

相关文章
|
17天前
|
Linux
关于Linux目录访问函数总结
关于Linux目录访问函数总结
13 1
|
23天前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
196 0
|
30天前
|
存储 监控 Linux
【Linux IO多路复用 】 Linux下select函数全解析:驾驭I-O复用的高效之道
【Linux IO多路复用 】 Linux下select函数全解析:驾驭I-O复用的高效之道
50 0
|
1月前
|
Linux
linux系统中常见注册函数的使用方法
linux系统中常见注册函数的使用方法
28 1
|
1月前
|
Linux
进程等待(wait和wait函数)【Linux】
进程等待(wait和wait函数)【Linux】
|
23天前
|
存储 算法 Linux
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
37 0
|
30天前
|
缓存 Ubuntu 网络协议
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
20 1
|
30天前
|
网络协议 Linux API
Linux网络编程:shutdown() 与 close() 函数详解:剖析 shutdown()、close() 函数的实现原理、参数说明和使用技巧
Linux网络编程:shutdown() 与 close() 函数详解:剖析 shutdown()、close() 函数的实现原理、参数说明和使用技巧
65 0
|
30天前
|
存储 安全 数据管理
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
18 1
|
23天前
|
存储 Unix Linux
深入理解 Linux 系统下的关键网络接口和函数,gethostent,getaddrinfo,getnameinfo
深入理解 Linux 系统下的关键网络接口和函数,gethostent,getaddrinfo,getnameinfo
14 0