您的位置:首页 > 运维架构 > Shell

linux bash shell 子程序、函数的简单声明以及调用

2012-05-02 23:45 721 查看
最近段时间由于工作的需要,一直看linux相关的技术,基本的命令,还有基于bash shell的编程,也算是入门吧,所以在此我想讲下我对于shell中子程序以及函数的简单应用

我有一个主程序shell2.sh,里面根据你选择的不同选项来决定调用的是子程序showMsg还是共享函数NumFunc

1.子程序 showMsg是一个单独的执行文件,可用bash showMsg来执行,具体的代码如下:

#bash shell的头文件声明

#!/bin/bash

#打印result is 10,也可传入参数$1,$2...等

echo "result is 10"

======================================

2.bash shell中的共享函数(NumFunc同样也是一个单独的可执行文件,可通过bash NumFunc或者./NumFunc来调用)

#!/bin/bash

#declare a function

function NumFunc

{

echo "current function is NumFunc"

}

#调用当前的函数,不然只有声明没有调用那么函数体里面的内容不会执行

NumFunc

#这里有个重新定义NumFunc变量,目的是为了将NumFunc共享出去,如果不进行声明那么其他文件里面是无法调用到当前的函数的

export NumFunc

========================

3.编写主程序shell2.sh,在该程序里面如果选择了1,那么调用NumFunc函数,如果选择了2那么调用子程序showMsg,如果选择q则退出程序

具体代码如下:

#!/bin/bash

flag="1"

while [ "$flag" -eq 1 ]

do

clear

echo "The Telephone Book"

echo ""

echo "1. Display A Telephone Number"

echo "2. Add A New Telephone Number"

echo "Q Quit"

echo "Enter your selection: "

read selection

echo "your select is $selection"

case $selection in

"1")

#通过bash调用共享函数(linux 5.X需要这么写,其他版本的可能省略掉bash也能执行)

bash NumFunc

;;

"2")

#通过bash调用子程序(linux 5.X需要这么写,其他版本的可能省略掉bash也能执行),如果是传参数直接在调用后面加参数就好,如:bash showMsg “aaa” "bbbb"

bash showMsg

;;

"q")

$flag="0"

;;

"Q")

$flag="0"

;;

*)

echo "You made in invalid selection,Try again."

esac

done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐