如何允许变量在从另一个csh脚本调用的csh脚本中使用?

时间:2013-03-23 16:30:11

标签: csh

我有一个脚本caller.csh,我在其中调用另一个called.sh。我在set中使用caller.csh命令声明了一些变量(例如set alpha = 10)。如何在called.sh(例如echo $alpha)中使用它们而不将它们作为命令行参数传递?

请注意,脚本called.sh可以独立运行,变量也在其中定义。我希望这些变量值被caller.sh中的值覆盖。所以我会在if not defined $alpha, then set alpha =中使用类似called.sh的内容。

1 个答案:

答案 0 :(得分:1)

一种方法是将它们设置为环境变量(使用setenv)。

然而,这不是一个好方法。将变量传递给shell脚本的接口应该通过命令行选项/参数。如果它是一个shell脚本,它应该是standalone-ish。如果直接从命令行运行它,你还会如何传递相同的参数?

编辑:在更新问题的第二部分之后。使用getopt。您可以将变量设置为默认值,然后使用getopt覆盖这些值,以防用户将它们作为命令行选项/参数传递。这种方法优于任何类型的全局定义变量。