传递ARRAY参数以在模块文件中设置别名



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

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

返回零:(

0

需要(潜在的)大量的反斜杠,因为模块不能很好地处理单引号(正如他们在手册页中所说)。有人能解释一下发生了什么事吗?

感谢

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

您可以使用proc编写函数:

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

最新更新