Unix shell脚本 - 打印范围内可用的所有变量

时间:2010-08-26 19:20:38

标签: unix shell

有没有办法找出shell脚本范围内可用的变量。

场景是这样的,我们使用了一些第三方工具,我们可以通过创建具有特定命名约定的shell脚本来自定义输出。我们知道某些参数正在传递给我们的自定义shell脚本,但我们想知道还传递了什么。

感谢。

4 个答案:

答案 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变量 - typesetlocal等命令可用于某些shell( kshbash)允许在函数中使用作用域 shell变量环境变量是进程实例的全局变量。

答案 1 :(得分:6)

这很容易;)

env

答案 2 :(得分:0)

听起来你想要环境变量,所以使用export -p。输出(由每个POSIX的export variable=value形式的行组成)以一种可以由shell解析的方式引用。它也在大多数shell中按变量名排序。

如果你想要所有的shell参数(对于你的用例,这只有在脚本来源而不是作为单独的程序调用时才有用),使用set(再次,它在POSIX中,输出正确引用重新分析,并在大多数贝壳中排序。)

答案 3 :(得分:0)

这可能非常简单,但......

grep = <your script>