我尝试从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"
答案 0 :(得分:8)
因为模块脚本是用Tcl编写的,所以需要引用alias-string
中的Tcl元字符。最简单的方法是将别名放在{
大括号}
中,而不是"
双引号"
。
set-alias cmd {cmd $1 -cnf=/shared/$2 -ssh -etc}