Como posso passar um bloco como argumento para uma função bash?
Eu gostaria de criar uma função bash que pode obter um bloco de código bash como time:
time {
echo 123
echo "Something else"
sleep 1
}
Basicamente, gostaria de poder embrulhar o bloco com meu código bash.
Edit : Atualizei minha pergunta após a primeira resposta de @ DavidPostill ♦ e os comentários: Por exemplo, eu gostaria de quebrar um bloco de código com 2> & 1> / dev / null e também o tempo com time. Devo escrever um programa fora do bash para fazer isso?
function myfunction() {
time { $1 } 2>&1 /dev/null
}
myfunction { sleep 1 }
Edição 2 : Após a leitura, parece que não é possível, pois timeé um caso especial para o bash.
Respostas
Eu gostaria de poder envolver a função com meu código bash e passar argumentos
Funções com amostra de parâmetros
#!/bin/bash function quit { exit } function e { echo $1 } e Hello e World quit echo fooA função
eimprime o primeiro argumento que recebe.Os argumentos, dentro das funções, são tratados da mesma maneira que os argumentos dados ao script.
Programação Source BASH - Introdução COMO: Funções
Leitura adicional
- function Man Page - Linux - SS64.com
- Uma função bash que aceita argumentos como outras linguagens? - Unix e Linux Stack Exchange
- Passando parâmetros para uma função Bash - Stack Overflow