OldCarMan
V2EX  ›  Bash

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

By OldCarMan at 2023 年 3 月 15 日 · 2438 次点击

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 年 5 月 15 日
把你的函数定义在 ~/.bashrc 这个文件中不就行了吗?每次启动新的 bash 进程都会去自动读取这个文件
OldCarMan
   2
OldCarMan  
OP
   2023 年 5 月 21 日
谢谢回复。不过这样会不会不大规范,毕竟代码扩散到各种地方,维护管理起来比较麻烦。😂
© 2026 V2EX · 29ms · 3.9.8.5