bash中的别名问题

时间:2014-03-17 11:25:55

标签: linux bash

我在bash中遇到alias命令的问题。我在我的主目录中创建了.bashrc并添加了一个别名,如下所示:

test() { "test_command_$1"; }
alias au=test

但是当我打开一个新终端并试图通过别名au arg1执行命令时,它会抱怨:

bash: test_command_arg1: command not found

但是如果我在与test_command_arg1相同的终端中手动执行别名命令,那么它工作正常。我检查了PATH变量,没关系。有人可以帮我解决这个问题吗?

P.S:test_command_只是一个例子。这不是正在尝试的实际命令。

1 个答案:

答案 0 :(得分:0)

由于test()函数的作用,您收到“未找到命令”错误。

test() { "test_command_$1"; }

当你用一个参数调用它时,$1被替换为那个参数(我想你知道这一点)。所以如果你打电话给au arg1,你的功能就是这样:

"test_command_arg1"

shell正在尝试将其作为命令执行。 test_command_arg1不是可识别的命令,因此您会收到错误消息。尝试更改测试功能:

test() { echo "test_command_$1"; }