Eu tenho um script yummy.sh
#!/bin/bash
alias yumy='yum install -y '
yumprovision() {
yumy
}
Quando eu executo este script tenho isso
bash: yumy: command not found
por que não está carregando o alias na função?
Eu tenho um script yummy.sh
#!/bin/bash
alias yumy='yum install -y '
yumprovision() {
yumy
}
Quando eu executo este script tenho isso
bash: yumy: command not found
por que não está carregando o alias na função?
Você pode usar uma função para
yumy
também:O
"$@"
expande para os argumentos dessa função, portanto,yumy foo bar
funciona da mesma forma queyum install -y foo bar
.O Bash não expande aliases em shells não interativos por padrão, mas você pode alterar isso
shopt expand_aliases
se realmente quiser, consulte The Shopt Builtin no manual . Mas há poucas razões para fazer isso, as funções são melhores de várias maneiras.Porque os aliases não podem ser usados em scripts. Os aliases são apenas "convertidos" quando inseridos no terminal (caso contrário, escrever scripts seria difícil, porque você não saberia como
ls
ourm
reagiria, por exemplo).Eu acredito que as variáveis são as
alias
de scripting.Você sempre pode fazer o seguinte, [Mas não recomendado]
Por que esse método não é recomendado e qual caminho seguir é discutido neste link.