最近段时间由于工作的需要,一直看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