V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
OldCarMan
V2EX  ›  Bash

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

  •  
  •   OldCarMan · Mar 15, 2023 · 1823 views
    This topic created in 1140 days ago, the information mentioned may be changed or developed.

    rt,最近使用 bash call

     bash -c "custom_functions"
    

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

     custom_function:command not found 
    

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

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

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

    2 replies    2023-05-21 08:34:14 +08:00
    hxy100
        1
    hxy100  
       May 15, 2023
    把你的函数定义在 ~/.bashrc 这个文件中不就行了吗?每次启动新的 bash 进程都会去自动读取这个文件
    OldCarMan
        2
    OldCarMan  
    OP
       May 21, 2023
    谢谢回复。不过这样会不会不大规范,毕竟代码扩散到各种地方,维护管理起来比较麻烦。😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5063 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 05:38 · PVG 13:38 · LAX 22:38 · JFK 01:38
    ♥ Do have faith in what you're doing.