[英]Print environment variables and functions as executable commands in bash
在bash中,如果在终端中运行alias
,它会将已定义别名的列表打印为命令,如下所示:
alias foo=bar
如果您愿意,可以使用alias > my_aliases.sh
,然后source my_aliases.sh
。 我想要相同的东西,但对于环境变量和定义的函数。
env
似乎可能会起作用,但这并不是很有效。 我需要这个输出环境变量和函数,但我在env
的输出中看到这样的行:
BASH_FUNC_foo()=() { ls foo
}
foo
是我的函数的实际名字,但我不能输出加env
到一个文件和source
它。 如果我这样做,脚本会像这样错误:
bash: test.sh: line 8: `BASH_FUNC_pkgs()=() { pkg ls "$@"'
是否有可能只打印环境变量,然后以其他方式打印导出的函数,这是执行友好的? 任何意见,将不胜感激。
declare -p
将以可重用的格式打印所有变量,包括export / integer / readonly / etc. 属性。
declare -x USER="jkugelman" declare -x USERNAME="jkugelman" declare -x VISUAL="vim"
declare -fp
将以可重复使用的格式打印所有函数。
reload () { history -a; exec bash -l }
如果你不关心属性,裸declare
将打印变量和函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.