资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么在Shell脚本中使用function函数-创新互联

怎么在Shell脚本中使用function函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站从2013年成立,是专业互联网技术服务公司,拥有项目网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元马尾做网站,已为上家服务,为马尾各地企业和个人服务,联系电话:18982081108

函数可以在shell script当中做一个类似自定义执行命令,较大的功能就是可以简化我们很多的程序代码。需要注意的是shell script的执行方式是由上而下/由左而右,因此在shellscript当中的function的设置一定要在程序的最前面,这样才能够在执行时被找到可用的程序段。

#!/bin/bash


# Program
#    This program is to show the use of "function"
# History
# 2013/5/4 by Lvcy First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/loacl/sbin:~/bin
export PATH
 
#输出统一信息
function printInfo ()
{
        echo -n "Your choice is "
}
#将小写字符转换为大写字符
function dotr()
{
        tr 'a-z' 'A-Z'
}
read -p "Please input your choice(one|two|three|four):" num
#用case做条件判断
case $num in
        "one")
                printInfo; echo $num | dotr
                ;;
        "two")
                printInfo; echo $num | dotr
                ;;
        "Three")
                printInfo; echo $num | dotr
                ;;
        "four") printInfo; echo $num | dotr
                ;;
esac
exit 0


下面是一个一般的带有function函数的shell脚本:

代码如下:


#!/bin/bash
# Program
#    This program is show the params of function
# History
#    2013/5/14 by Lvcy First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
function printInfo()
{
        echo "Your choice is $1"
}
case $1 in
        "one")
                printInfo 1
                ;;
        "two")
                printInfo 2
                ;;
        "three")
                printInfo 3
                ;;
        "four")
                printInfo 4
                ;;
esac

exit 0


若以上文件名为sh02.sh,则执行这个script的命令为:

sh sh02.sh one


看完上述内容,你们掌握怎么在Shell脚本中使用function函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文名称:怎么在Shell脚本中使用function函数-创新互联
新闻来源:http://www.cdkjz.cn/article/cdsdes.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220