Você pode executar uma função em segundo plano?

2

Eu crio um script, colo dados nele, salvo, executando e excluo:

vi ~/ms.sh && chmod +x ~/ms.sh && nohup ~/ms.sh && rm ~/ms.sh
#!/bin/bash

commands...

function myFunc {

commands...
}

myFunc ()

Como posso executar corretamente apenas o myFunc, em segundo plano ou, alternativamente, em outro processo? Se é mesmo possível?

    
por JohnDoea 03.01.2017 / 03:52

2 respostas

3

Você pode usar uma função de shell praticamente em qualquer lugar onde possa usar um programa. Lembre-se de que as funções do shell não existem fora do escopo em que foram criadas.

#!/bin/bash
#
f() {
    sleep 1
    echo "f: Hello from f() with args($*)" >&2
    sleep 1
    echo "f: Goodbye from f()" >&2
}

echo "Running f() in the foreground" >&2
f one

echo "Running f() in the background" >&2
f two &

echo "Just waiting" >&2
wait

echo "All done"
exit 0
    
por 03.01.2017 / 12:27
1

Você os executa em segundo plano como em qualquer outro comando shell ou script com & no final.

Bash e shells similares também permitem combinar comandos com ( e ) , como:

(command1; command2) &
    
por 03.01.2017 / 06:39

Tags