我有一个脚本 yummy.sh
#!/bin/bash
alias yumy='yum install -y '
yumprovision() {
yumy
}
当我运行这个脚本时得到了这个
bash: yumy: command not found
为什么它不在函数中加载别名?
我有一个脚本 yummy.sh
#!/bin/bash
alias yumy='yum install -y '
yumprovision() {
yumy
}
当我运行这个脚本时得到了这个
bash: yumy: command not found
为什么它不在函数中加载别名?
你也可以使用一个函数
yumy
:"$@"
扩展为该函数的参数,因此yumy foo bar
与yum install -y foo bar
.默认情况下,Bash 不会在非交互式 shell 中扩展别名,但
shopt expand_aliases
如果你真的需要,你可以更改它,请参阅手册中的 Shopt Builtin。但是没有什么理由这样做,功能在很多方面都更好。因为别名不能在脚本中使用。别名只有在终端输入时才会“转换”(否则编写脚本会很困难,因为您现在不知道如何
ls
或rm
会做出反应)。我相信变量是
alias
脚本。您始终可以执行以下操作,[但不推荐]
为什么不推荐这种方法以及遵循哪种方法在此链接中进行了讨论。