有没有办法找出shell脚本范围内可用的变量。
场景是这样的,我们使用了一些第三方工具,我们可以通过创建具有特定命名约定的shell脚本来自定义输出。我们知道某些参数正在传递给我们的自定义shell脚本,但我们想知道还传递了什么。
感谢。
答案 0 :(得分:9)
命令为set
来自bash
手册页
set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
Without options, the name and value of each shell variable are displayed in a
format that can be reused as input.
请勿将此与env
混淆,后者会打印环境变量 shell变量的值。 shell变量 可以标记为使用export
命令自动导出到后续子进程的环境中。
范围作为编程术语,仅适用于 shell变量 - typeset
和local
等命令可用于某些shell( ksh
和bash
)允许在函数中使用作用域 shell变量。 环境变量是进程实例的全局变量。
答案 1 :(得分:6)
这很容易;)
env
答案 2 :(得分:0)
听起来你想要环境变量,所以使用export -p
。输出(由每个POSIX的export variable=value
形式的行组成)以一种可以由shell解析的方式引用。它也在大多数shell中按变量名排序。
如果你想要所有的shell参数(对于你的用例,这只有在脚本来源而不是作为单独的程序调用时才有用),使用set
(再次,它在POSIX中,输出正确引用重新分析,并在大多数贝壳中排序。)
答案 3 :(得分:0)
这可能非常简单,但......
grep = <your script>