将参数传递给modulefile中的set-alias

时间:2014-01-03 09:59:28

标签: linux tcl modulefile

我尝试从bash shell加载包含别名的模块文件。 tutorial page对set-alias命令说了以下内容:

  

set-alias alias-name alias-string

     

在用户环境中将名称为alias-name的别名或函数设置为字符串alias-string。可以使用Bourne Shell样式的函数参数指定参数。如果字符串包含“$ 1”,那么当shell解释别名时,这将成为第一个参数。字符串“$ *”对应于给别名的所有参数。可以使用'\'字符转义字符'$'。

     

对于某些shell,别名是不可能的,命令无效。对于Bourne shell派生类,将编写shell函数(如果支持)以给出别名的印象。卸载modulefile时,set-alias将变为unset-alias。

我想使用别名来创建一个命令,让我可以使用某些特定参数启动给定的软件。任何人都可以指出下面的语法有什么问题吗?

set-alias    cmd     "cmd $1 -cnf=/shared/$2 -ssh -etc"

1 个答案:

答案 0 :(得分:8)

因为模块脚本是用Tcl编写的,所以需要引用alias-string中的Tcl元字符。最简单的方法是将别名放在{大括号}中,而不是"双引号"

set-alias cmd {cmd $1 -cnf=/shared/$2 -ssh -etc}