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))
}
demon
echo "输入的两个数字的和是:$?"
注:1)函数在调用前必须定义,也就是说函数必须写在脚本的前面;
2)函数的返回值通过$?在调用函数后获得
)函数的返回值只能是(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
注: 第一种方式.后有个空格,不能省略
被包含的文件可以没有执行的权限