V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OldCarMan
V2EX  ›  Bash

使用 shell 的 bash -c "functions"时,是不是所有相关的函数都得声明出来?

  •  
  •   OldCarMan · 2023-03-15 13:35:09 +08:00 · 790 次点击
    这是一个创建于 629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt,最近使用 bash call

     bash -c "custom_functions"
    

    的方式调用自定义 shell 函数时,发现总会报一个

     custom_function:command not found 
    

    的错误;然后搜了下,有三种方式解决:

    • 使用 declare -fx 声明
    • 使用 export -fx 声明
    • 使用 typeset -xf 声明

    但这几种方式,函数栈里如果有多个自定义函数,都得在使用手动声明,挺麻烦的,所以想请问各位大佬有没有比较优雅的方式在不需要声明多个自定义函数的情况下实现自定义函数栈的调用,或者如何避免出现这种情况?谢谢回复。

    2 条回复    2023-05-21 08:34:14 +08:00
    hxy100
        1
    hxy100  
       2023-05-15 03:31:18 +08:00
    把你的函数定义在 ~/.bashrc 这个文件中不就行了吗?每次启动新的 bash 进程都会去自动读取这个文件
    OldCarMan
        2
    OldCarMan  
    OP
       2023-05-21 08:34:14 +08:00
    谢谢回复。不过这样会不会不大规范,毕竟代码扩散到各种地方,维护管理起来比较麻烦。😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1388 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:39 · PVG 01:39 · LAX 09:39 · JFK 12:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.