shell函数
注:现在是unix编程
实例:
#!/bin/sh
demon(){ echo "这是一个shell脚本"}demon注: 调用是只写函数名没有()
函数的返回值
函数的返回值只能是数字(0-255)
#!/bin/sh
demon(){ echo "这个函数会对输入的两个数字进行加法运算" echo "请输入第一个数字" read cat1 echo "请输入第二个数字" read cat2 echo "两个数字分别为${cat1}和${cat2}" return $(($cat2+$cat1))}demonecho "输入的两个数字的和是:$?"注:1)函数在调用前必须定义,也就是说函数必须写在脚本的前面;
2)函数的返回值通过$?在调用函数后获得
3)函数的返回值只能是(0-255),也就是前面的demon函数输入为255和1时,会返回0,切记
函数参数
#!/bin/sh
demon(){ echo "第1个参数是:$1" echo "第2个参数是:$2" echo "第3个参数是:$3" echo "第4个参数是:$4" echo "第5个参数是:$5" echo "第6个参数是:$6" echo "第7个参数是:$7" echo "第8个参数是:$8" echo "第9个参数是:$9" echo "第10个参数是:${10}" echo "总共有参数:$#" echo "作为一个参数输出所有参数:$*"}demon 1 2 3 4 5 6 7 8 9 10 11输出结果:
第1个参数是:1
第2个参数是:2第3个参数是:3第4个参数是:4第5个参数是:5第6个参数是:6第7个参数是:7第8个参数是:8第9个参数是:9第10个参数是:10总共有参数:11作为一个参数输出所有参数:1 2 3 4 5 6 7 8 9 10 11注: 注意第十个参数的获取方法要加{}
shell输入输出重定向
输出重定向
如 ll > usrs 会将命令的结果输出到usrs文件中(如果文件不存在则创建,有的覆盖),可以使用>>来实现追加
输入重定向
如 命令行输入 wc test.sh 和wc < test.sh 第一个会显示文件名,第二个不会显示文件名,因为它仅仅知道从标准输入读取内容
/dev/null
如果执行某个命令不希望在命令行显示可以直接定向到/dev/null, /dev/null是个特殊的文件写入其中的内容都会被丢弃
shell 文件包含
shell也可以包含外部脚本
引入方式有两种
1) . filename
2) source filename
注: 第一种方式.后有个空格,不能省略
被包含的文件可以没有执行的权限