我在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_
只是一个例子。这不是正在尝试的实际命令。
答案 0 :(得分:0)
由于test()
函数的作用,您收到“未找到命令”错误。
test() { "test_command_$1"; }
当你用一个参数调用它时,$1
被替换为那个参数(我想你知道这一点)。所以如果你打电话给au arg1
,你的功能就是这样:
"test_command_arg1"
shell正在尝试将其作为命令执行。 test_command_arg1
不是可识别的命令,因此您会收到错误消息。尝试更改测试功能:
test() { echo "test_command_$1"; }