You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Bash脚本时将函数名作为参数传入执行的实现方法

Bash脚本按参数执行指定函数解决方案

这个需求完全可以实现,你可以通过遍历脚本的传入位置参数、匹配执行对应函数的方式完成,修改方案如下:

实现逻辑

  • 调整原有函数的输出逻辑,加-n参数取消echo默认的尾部换行,保证多个函数输出可以拼接在同一行
  • 遍历脚本执行时传入的所有参数,逐个校验是否为已定义的函数,避免非法参数报错
  • 所有指定函数执行完成后统一输出换行符,优化终端显示体验
  • 新增非法参数的错误提示与异常退出逻辑

修改后的完整脚本

#!/bin/bash

function hello (){
    echo -n "hello,"
}

function world (){
    echo -n "world!"
}

# 遍历所有传入的函数名参数
for target_func in "$@"; do
    # 校验参数是否为已定义的函数
    if type "$target_func" 2>/dev/null | grep -q 'function'; then
        "$target_func"
    else
        echo "错误:不存在的函数 $target_func" >&2
        exit 1
    fi
done

# 统一输出换行,避免终端提示符紧跟输出内容
echo

效果验证

  • 首先给脚本添加执行权限:chmod +x test.sh
  • 执行测试命令:./test.sh hello world
  • 输出结果如下:
hello,world!

如果需要单独执行某一个函数,直接传入对应函数名即可,比如执行./test.sh hello会输出hello,。

内容的提问来源于stack exchange,提问作者SimpleNiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:45:00