LinuxShell是一个非常强悍的命令行类库linux之家,可以在Linux/Unix环境下运行。它容许您自动输入命令并从脚本中读取命令。这个教程将向您介绍怎么编撰Shell函数。
1.Shell函数的定义
Shell函数的定义类似于Shell脚本中的其他命令。但不同之处在于函数以“函数名()”的方式定义,而不是以命令行句子的方式定义。诸如,下边展示了一个简单的函数:
function funcName() {
#函数体
}
或则
funcName() {
#函数体
}
函数可以接受参数,在括弧中用冒号隔开。参数可以被函数中的命令引用为$1,$2等。比如,
welcome() {
echo "Hello, $1"
}
这么你可以运行这样的一个函数:welcome"Tom",它会输出:Hello,Tom
2.Shell函数的调用
Shell函数调用与普通命令调用相同:输入函数名称即可。比如,使用前面的函数welcome,可以通过以下方法调用:
welcome "Tom"
应当输出:
Hello, Tom
3.Shell函数的返回值
Shell函数可以返回一个整数值,这个值的范围是0到255。在函数中,使用return句子返回整数值unix shell 编程指南,如下:
function test() {
return 10
}
然后来测试一下这个函数:
test
echo $?
这儿的$?是一个特殊变量,代表上一个命令的返回值。里面的事例将会输出10linux移植,也就是函数返回的值。
4.Shell函数示例
以下是一个简单的脚本演示怎么使用函数执行一些简单的任务,如列举当前目录中的文件:
#!/bin/bash
list_files () {
for file in "$@"
do
if [ -f "$file" ]
then
echo "$file是一个普通文件。"
elif [ -d "$file" ]
then
echo "$file是一个目录。"
else
echo "$file不是一个有效文件或目录。"
fi
done
}
# 调用函数
list_files /etc/passwd /etc /var/tmp /not/valid/file
输出应当是这样的:
/etc/passwd是一个普通文件。
/etc是一个目录。
/var/tmp是一个目录。
/not/valid/file不是一个有效文件或目录。
本文提供了一些基础的Shell函数编程概念和示例。希望这种示例能帮助你更好地理解Shell脚本,但是增强你的LinuxShell编程技能。
系列文章持续更新unix shell 编程指南,假如认为有帮助请点赞+关注!