将ARRAY参数传递给modulefile

时间:2016-04-04 16:20:36

标签: arrays bash alias environment-modules

所有。 我需要使用必须在环境模块中声明的函数,因此我尝试使用set-alias定义它。 这是一个棘手的问题,它所采用的参数是一个数组。 到目前为止,作为测试,我试过这个:

set-alias test  {
    declare -a argArray=(\"${@}\");
    echo \${\#argArray}
}

返回零:(

0

需要(可能)大量的反斜杠,因为模块与单引号相处并不好(所以他们在联机帮助页中说)。 有人可以解释一下我在做什么吗?

感谢

1 个答案:

答案 0 :(得分:1)

  • 不要使用set-alias来编写函数
  • 环境模块基于 tcl

您可以使用proc来编写函数:

proc test {arg1} {
    return [llength $arg1]
}