Preciso de ajuda para descobrir como executar um alias ou função do bash que escolhe aleatoriamente outro comando ou alias e o executa.
a lista de comandos e aliases e aliases de função é conhecida de antemão. o tamanho da lista também é conhecido.
Eu tenho várias variações de uma arte ascii armazenadas em aliases.
ex. ascii-art-colorless-clear ascii-art-colorless-bg ascii-art-colored-clear ascii-art-colored-bg
Eu não quero digitar o alias inteiro, eu só quero digitar ascii-art e ter um dos aliases escolhido como aleatório.
cada alias é apenas um simples comando de eco neste caso
EDIT: resposta encontrada com a ajuda de Gilles Quenot . função necessária é select-random-arguement-to-run() { $(shuf -e "$@" -n 1) }
isso selecionará um alias aleatório e o executará
alias ascii-art="select-random-arguement-to-run "ascii-art-colorless-clear" "ascii-art-colorless-bg" "ascii-art-colored-clear" "ascii-art-colored-bg""
que precisa da função select-random-arguement-to-run definida anteriormente para estar no meu arquivo bashrc.
O que eu faria usando ferramentas gnu :
Código:
Para definir uma função:
Para chamar a função:
construindo em cima do que Gilles Quenot disse (resposta de Gilles Quenot)
esta é a resposta que funcionou no meu alias/função do bash
executar $(run-random-command "echo hi" "echo bye" "ls") imprimirá bye ou hi no terminal ou executará ls e é equivalente a
como você deve saber, shuf retorna o texto do código, portanto $() é usado para executar o texto que shuf retorna.