当前位置: 首页 > news >正文

苏州网站推广去苏州聚尚网络成都网站建设设计

苏州网站推广去苏州聚尚网络,成都网站建设设计,前端开发转行做什么好,临时网页生成概念 函数就是将你需要执行的shell命令组合起来,组成一个函数体。一个完整的函数包括函数头和函数体,其中函数名就是函数的名字。 优点 将相同的程序,定义,封装为一个函数,能减少程序的代码数量,提高开发…

概念

函数就是将你需要执行的shell命令组合起来,组成一个函数体。一个完整的函数包括函数头和函数体,其中函数名就是函数的名字。

优点

  • 将相同的程序,定义,封装为一个函数,能减少程序的代码数量,提高开发效率。
  • 使用函数,能让你写更少的代码,早点写完,早点回家休息多好。
  • 函数能够增加代码的可读性,易读性,容器管理。

函数的实际开发

shell函数定义的语法

# 标准shell函数定义
function 函数名() {函数体你想执行的Linux命令return 返回值
}# 偷懒写法
# 当使用function关键字时候,可以省略括号
function 函数名 {函数体你想执行的那些命令。。。。return 返回值
}# 超人懒人写法,shell老司机的时候
# 必须有括号
函数名() {函数体代码。。。return 返回值
}# 执行该函数
函数名

执行函数的基础概念

有关函数执行的基本概念

  • 执行shell函数,直接写函数名字即可,无需添加其他内容
  • 函数必须先定义,在执行,shell脚本自上而下加载
  • 函数体内定义的变量,称之为局部变量
  • 函数体内需要添加return语句,作用是退出函数,且赋予返回值给调用该函数的程序,也就是shell脚本
  • return语句和exit不同
    • return是结束函数的执行,返回一个(退出值、返回值)
    • exit是结束shell环境,返回一个(退出值、返回值)给当前的shell
  • 函数如果单独写入一个文件里,需要用source读取
  • 函数内,使用local关键字,定义局部变量

函数实践

场景1:

xiao123@xiao123:~/Downloads/shscripts$ cat ./func1.sh
#! /bin/bashfunction chaochao() {cd /tmpecho "我准备创建一个文件,且写入信息"echo "爱的魔力转圈圈" > ./music.txtreturn 0
}chaochao
xiao123@xiao123:~/Downloads/shscripts$

运行结果:

xiao123@xiao123:~/Downloads/shscripts$ bash ./func1.sh
我准备创建一个文件,且写入信息
xiao123@xiao123:~/Downloads/shscripts$ ls /tmp/
message.txt
music.txt
xiao123@xiao123:~/Downloads/shscripts$
xiao123@xiao123:~/Downloads/shscripts$ cat /tmp/music.txt
爱的魔力转圈圈
xiao123@xiao123:~/Downloads/shscripts$

场景2:
函数定义和执行,分开在不同的文件中,Linux自带的诸多脚本,都是基于该形式使用的。

  • 函数写在一个文件中,只定义,不执行
  • 另外一个脚本,读取该文件,且加载该函数
1. 先定义一个my_function.c脚本,作用是只记录函数,不运行
xiao123@xiao123:~/Downloads/shscripts$ cat my_function.sh
#!/bin/bashchao(){echo "我是函数,我被执行~你真棒"
}
xiao123@xiao123:~/Downloads/shscripts$2.如何检查当前的shell环境变量
xiao123@xiao123:~/Downloads/shscripts$ set | grep ^chao
xiao123@xiao123:~/Downloads/shscripts$3.利用source命令读取shell脚本,能够加载其变量到当前shell环境中
xiao123@xiao123:~/Downloads/shscripts$ source my_function.sh
xiao123@xiao123:~/Downloads/shscripts$4.再次验证
xiao123@xiao123:~/Downloads/shscripts$ set | grep ^chao
chao ()
xiao123@xiao123:~/Downloads/shscripts$5.可以推出当前shell,再次登录,查看该环境变量
exit
xiao123@xiao123:~$ chao
Command 'chao' not found, did you mean:command 'chaos' from deb emboss (6.6.0+dfsg-11ubuntu1)command 'chat' from deb ppp (2.4.9-1+1ubuntu3)
Try: apt install <deb name>
xiao123@xiao123:~$xiao123@xiao123:~/Downloads/shscripts$ source my_function.sh
xiao123@xiao123:~/Downloads/shscripts$ set | grep ^chao
chao ()
xiao123@xiao123:~/Downloads/shscripts$ chao
我是函数,我被执行~你真棒
xiao123@xiao123:~/Downloads/shscripts$

使用脚本加载chao,并执行

xiao123@xiao123:~/Downloads/shscripts$ cat fun3.sh
#! /bin/bash[ -f ./my_function.sh ] && . my_function.sh || exit -1chao
xiao123@xiao123:~/Downloads/shscripts$xiao123@xiao123:~/Downloads/shscripts$ bash fun3.sh  #启动子shell,在子shell中加载
我是函数,我被执行~你真棒
xiao123@xiao123:~/Downloads/shscripts$xiao123@xiao123:~/Downloads/shscripts$ chao
\Command 'chao' not found, did you mean:command 'chat' from deb ppp (2.4.9-1+1ubuntu3)command 'chaos' from deb emboss (6.6.0+dfsg-11ubuntu1)
Try: apt install <deb name>
xiao123@xiao123:~/Downloads/shscripts$xiao123@xiao123:~/Downloads/shscripts$ source fun3.sh   # 在当前shell中加载
我是函数,我被执行~你真棒
xiao123@xiao123:~/Downloads/shscripts$ set | grep ^chao
chao ()
xiao123@xiao123:~/Downloads/shscripts$ chao
我是函数,我被执行~你真棒
xiao123@xiao123:~/Downloads/shscripts$

bash 开启子shell执行,source使用当前shell执行

函数处理参数

函数可以处理来自命令行传到shell脚本中的参数。

my_function.sh

xiao123@xiao123:~/Downloads/shscripts$ cat my_function.sh
#!/bin/bashchao(){echo "我是函数,我被执行~你真棒"
}helloPyyu(){echo "兄台,你传入的脚本参数,依次是 $1 $2 $3,并且参数个数一共是$#"
}
xiao123@xiao123:~/Downloads/shscripts$

fun3.sh

xiao123@xiao123:~/Downloads/shscripts$ cat fun3.sh
#! /bin/bash[ -f ./my_function.sh ] && . my_function.sh || exit -1helloPyyu $1 $2 $3
xiao123@xiao123:~/Downloads/shscripts$

运行结果

xiao123@xiao123:~/Downloads/shscripts$ bash fun3.sh
兄台,你传入的脚本参数,依次是   ,并且参数个数一共是0
xiao123@xiao123:~/Downloads/shscripts$ bash fun3.sh 2131 4543 5646 45645
兄台,你传入的脚本参数,依次是 2131 4543 5646,并且参数个数一共是3
xiao123@xiao123:~/Downloads/shscripts$ bash fun3.sh 2131 4543 5646
兄台,你传入的脚本参数,依次是 2131 4543 5646,并且参数个数一共是3
xiao123@xiao123:~/Downloads/shscripts$

函数实战开发

  1. 检测url是否正常,要求是函数开发形式
xiao123@xiao123:~/Downloads/shscripts$ cat check_url.sh
#!/bin/bashusage() {echo "Usage: $0 url"exit 1
}check_url() {wget --spider -q -o /dev/null --tries=1 -T 5 $1if [ $? -eq 0 ]thenecho "$1 is running..."elseecho "$1 is down..."fi
}main() {if [ $# -ne 1 ]thenusageficheck_url $1
}main $*
xiao123@xiao123:~/Downloads/shscripts$

运行结果

xiao123@xiao123:~/Downloads/shscripts$ bash check_url.sh www.baidu.com
www.baidu.com is running...
xiao123@xiao123:~/Downloads/shscripts$ bash check_url.sh www.baidu.coms
www.baidu.coms is down...
xiao123@xiao123:~/Downloads/shscripts$ bash check_url.sh www.baidu.coms  fd
Usage: check_url.sh url
xiao123@xiao123:~/Downloads/shscripts$ bash check_url.sh
Usage: check_url.sh url
xiao123@xiao123:~/Downloads/shscripts$

美化脚本

xiao123@xiao123:~/Downloads/shscripts$ cat check_url.sh
#!/bin/bash. /lib/lsb/init-functionsusage() {echo "Usage: $0 url"exit 1
}check_url() {wget --spider -q -o /dev/null --tries=1 -T 5 $1if [ $? -eq 0 ]thenlog_success_msg echo "$1 is running..."elselog_failure_msg "$1 is down..."fi
}main() {if [ $# -ne 1 ]thenusageficheck_url $1
}main $*
xiao123@xiao123:~/Downloads/shscripts$

运行结果:
slab

http://www.yayakq.cn/news/619405/

相关文章:

  • php完整网站开发案例wordpress赚钱
  • 郑州网站关网站名百度搜不到
  • 广州白云住房和建设局网站上海官网
  • 西安有哪些网站建设公司wordpress技术服务
  • .org做商业网站如何设置网站图标
  • wex5做网站叮当app制作平台下载
  • 网站收录慢街道办的网站由谁做的
  • 江苏公司网站建设公司校园网站建设年度工作计划
  • flash做的小动画视频网站大连网站制作流程
  • 建设国家地质公园网站主要功能国内ui设计公司
  • 如何规划一个网站沧州网络营销推广方案
  • 做产品目录设计用什么网站好廊坊网站建站
  • 仿网站的ppt怎么做自助建网站的平台 数据库
  • php做网站半成品怎么制作app软件需要多少钱
  • asp静态网站怎样让网站优化的方式
  • 做网站工商局要不要备案呢怎样做平台推广
  • 做招聘网站没有做老千的斗牛网站6
  • 导购网站自己做电商郑州做网站哪家公司好
  • 网站建设订单模板有哪些做场景秀的网站
  • 克拉玛依市区建设局网站做任务能赚钱的网站有哪些
  • 做网站运营工资是不是很低自己的网站打不开
  • 陕西建设银行缴费网站南京百度网站制作
  • 建网站开发费用php房产网站开发教程
  • 做网站多大上行速度杭州建设网站职称人才工作专题
  • 代做课题网站黑客收徒网站建设
  • 扶风做企业网站企业管理咨询是做什么的
  • 我们的优势的网站产品软文范例大全
  • html官方网站建网络商城网站
  • 网站建设视频百度网盘免费自助开通网站
  • 数据型网站 建设方案html5网站后台