我试图执行一个别名,这个别名是通过函数上的参数给出的。但是我不能执行这个别名。我也找不到解决方案。有人对这种情况有想法吗?
这是可行的:
alias rabbitmq='cd xy/_infra/v2/rabbitmq'
test () {
echo "run alias"
rabbitmq
}
这行不通:
alias rabbitmq='cd xy/_infra/v2/rabbitmq'
runAlias () {
local aliasCmd=$1
echo "run alias $aliasCmd"
$aliasCmd
}
test () {
runAlias rabbitmq
}
输出如下:
run alias rabbitmq
runAlias:4: command not found: rabbitmq
我试着用引号、括号和函数${BASH_ALIASES[$alias_key]}
来使用它,但没有任何帮助。
我想执行的别名是由参数给一个函数。
1条答案
按热度按时间6ovsh4lw1#
别名扩展是在参数扩展之前完成的。如果你真的想别名被理解,你必须这样做
但我更建议重新设计代码,这样就不需要将别名传递给函数。