Eu quero executar um alias dentro de uma bash -cconstrução.
O bashmanual diz:
Os aliases não são expandidos quando o shell não é interativo, a menos que a
expand_aliasesopção do shell seja configurada usandoshopt
Neste exemplo, por que o alias hinão foi encontrado ao definir expand_aliasesexplicitamente?
% bash -O expand_aliases -c "alias hi='echo hello'; alias; shopt expand_aliases; hi"
alias hi='echo hello'
expand_aliases on
bash: hi: command not found
Estou correndo GNU bash, version 5.0.0(1)-release (x86_64-pc-linux-gnu).
Contexto: desejo poder executar um alias com prioridade ociosa, por exemplo, um script que contenha:
#!/bin/bash
exec chrt -i 0 nice -n 19 ionice -c 3 bash -c ". ~/.config/bash/aliases; shopt -s expand_aliases; $(shell-quote "$@")"
Quero evitar o uso, bash -ipois não quero que meu .bashrcseja lido.
bash -c "hi () { echo hello; }; hi"saídas hello.
zsh: aliases zsh não expandir ainda com a opçãocomplete_aliases