bash - 将 bash 函数自动添加到 $PATH 或 bash shell
问题描述
有没有办法将 bash 函数添加到 $PATH 或 bash shell,而不需要最终用户手动获取它们?
换句话说,如果我们有一个只导出 bash 函数的软件库,我们通常要求最终用户使用
. "$HOME/.the_scripts/"*.sh
然后使用它们。但是有没有办法以某种方式将 bash 函数放入 shell,而无需用户向 ~/.bashrc 或 ~/.bash_profile 等添加一行代码?
我想做什么?我试图避免用户添加调用以获取他们刚刚安装的库的 bash 脚本。
解决方案
我得到的一个建议是将容器脚本写入一个文件夹,该文件夹已经在 $PATH 中。
假设我有一个这样的脚本:
#!/usr/bin/env bash
my_func(){
echo "this is my func, $1, $2, $3"
export foo="my_func"
}
my_func a b c
我可以将该脚本写入 $PATH 中的文件夹,然后执行该脚本,然后该脚本将调用 bash 函数。
不确定这是一个多么伟大/通用的解决方案,但它适用于我认为的某些用例。如果您想将 env 变量导出到当前 shell 等,这将不起作用,因为据我从命令行/当前脚本所知,bash 函数将在子 shell 中运行。
推荐阅读
- sql - 游标循环内计数器变量的奇怪行为
- html - 如何在引导程序中更改标题图像的高度?
- jquery - 错误:select() 不是函数 - JQuery
- r - 将分:秒:毫秒转换为毫秒
- java - 我的 do while 循环询问用户新文件时遇到问题是前一个不起作用
- jpa - 将 JPA Ecliselink 应用程序转换为 Spring JPA
- java - 在 if 语句中返回 2 个字符串中的 1 个
- python-3.x - 在 Flask 上设置 SSH 隧道连接
- reactjs - React - Redux 组件未正确显示 array.length,尽管组件在状态更改时重新渲染而不改变状态
- python - 从包含空值的多行数据帧创建平面数据帧