首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >向Bash函数传递参数

向Bash函数传递参数

作者头像
程序熵
发布于 2023-09-25 11:01:32
发布于 2023-09-25 11:01:32
1.6K0
举报
文章被收录于专栏:技术汇技术汇

问:

我试图搜索如何在Bash函数中传递参数,但出现的总是如何从命令行传递参数。

我想在我的脚本中传递参数。我试着:

代码语言:javascript
复制
myBackupFunction("..", "...", "xx")

function myBackupFunction($directory, $options, $rootPassword) {
     ...
}

但是语法不正确。如何将参数传递给函数?

答:

有两种典型的定义函数的方法

代码语言:javascript
复制
function function_name {
   command...
}

或

代码语言:javascript
复制
function_name () {
   command...
}

保留字function是可选的。如果写了保留字function,圆括号是可选的。

除非发生语法错误或已存在同名的只读函数,否则函数定义的退出状态为零。执行时,函数的退出状态码是在主体中执行的最后一个命令的退出状态码。

调用带参数的函数:

代码语言:javascript
复制
function_name "$arg1" "$arg2"

函数通过位置(而不是名称)引用传入的参数,即1、2,以此类推。另外

示例:

代码语言:javascript
复制
foo () {
   echo "Parameter #1 is $1"
}

此外,你需要在函数声明后调用它。

代码语言:javascript
复制
#!/usr/bin/env bash

foo 1  # 这将失败,因为foo还没有被声明

foo() {
    echo "Parameter #1 is $1"
}

foo 2 # 这将正常运行

参考:

  • stackoverflow question 6212219
  • https://www.gnu.org/software/bash/manual/bash.html#Shell-Functions

相关阅读:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-25 12:15,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档