shell定义带参数的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell定义带参数的函数相关的知识,希望对你有一定的参考价值。

参考技术A 1,Shell中也有函数的概念,但是函数定义中没有返回值也没有参数列表
2,shell函数内同样是用$0、$1、$2等变量来提取参数
3,Shell脚本中的函数必须先定义后调用,也就是定义必须在调用的前面 这也是由于是解释语言的原因
4,return后面跟一个数字则表示函数的Exit Status

#! /bin/sh

#如果 传参是文件名 不是文件夹名称 那么返回
#没有形参列表 ()
is_directory()

DIR_NAME=$1
if [ ! -d $DIR_NAME ]; then
return 1
else
return 0
fi


for DIR in "$@"; do
#给函数传参
if is_directory "$DIR"
then :
else
echo "$DIR doesn't exist. Creating it now..."
#如果创建文件失败 错误信息打印到 /dev/null
# 2 文件描述符 错误信息stderr, 1 文件描述符 输出信息stdout, 0文件描述符 键盘输入 stdin
# 2>&1 也就是将错误信息输出到 /dev/null 别再给我打印出来了
mkdir $DIR > /dev/null 2>&1
if [ $? -ne 0 ]; then # -ne 不等于
echo "Cannot create directory $DIR"
exit 1
fi
fi
done

shell函数

1 shell函数
1.1 函数定义
[ function ] funname [()]
{
action;
[return int;]
}
说明:
(1)可以带function fun()定义,也可以直接fun()定义,不带任何参数
(2)参数返回return,如果不加,将以最后一条命令运行结果作为返回值

demoFun(){
echo "shell函数示例"
}
echo "函数开始执行"
demoFun
echo "函数执行结束"

1.2 函数参数
在调用函数时,可以向其传递参数,通过$n的形式来获取参数的值。

funVartest(){
echo "第一个参数为 $1"
echo "第二个参数为 $2"
echo "参数总数有 $# 个"
echo "输出所有的参数 $*"
}
funVartest 1 3 6 8

注意:$10不能获取第十个参数,获取第十个参数需要${10}
执行shell脚本文件名时也可以加参数传递给脚本文件的变量。

以上是关于shell定义带参数的函数的主要内容,如果未能解决你的问题,请参考以下文章

参数传递:shell脚本调用一个带参数的python函数

函数函数参数

Shell 函数

14-shell 函数

Shell:函数

Shell 函数