是不是重复传参?

来源:2-7 Shell中的函数

InnoDB

2022-02-19

xyz_with_params abc xyz 124
sh functions.sh xyz abc 123
脚本内调用函数xyz_with_params时,传递一次参数,执行脚本functions.sh时,传递一次参数,是不是重复了?

写回答

1回答

沈无奇

2022-02-19

脚本传参和函数传参是不一样的,举个例子:

#! /bin/bash

hello(){

    echo "函数内$1"

}

echo "脚本内$1"

hello   # 调用hello()函数

如果我执行sh test.sh hello命令,给脚本传入一个位置参数,输出结果如下:

脚本内hello

函数内

脚本外部传参,在脚本内是可以使用$1这样去表示传入的第几个参数,但是对于函数内部的$1指的是调用函数传的位置参数,它并不是调用脚本传的位置参数。

1
1
InnoDB
好的,清楚了。谢谢沈老师。
2022-02-19
共1条回复

一课玩转自动化运维全流程,轻松应对自动化运维岗

自动化运维实战

288 学习 · 26 问题

查看课程