5

我尝试从 bash shell 加载包含别名的模块文件。教程页面对set-alias 命令进行了以下说明:

设置别名别名名称别名字符串

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

对于某些 shell,别名是不可能的,并且该命令无效。对于 Bourne shell 派生类,将编写一个 shell 函数(如果支持)以给人一种别名的印象。卸载模块文件时,set-alias 变为 unset-alias。

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

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

1 回答 1

9

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

set-alias cmd {cmd $1 -cnf=/shared/$2 -ssh -etc}
于 2014-01-03T14:44:17.180 回答