L'esecuzione del seguente frammento:come può un file di origine ereditare trap DEBUG?
#!/bin/bash
function preexec()
{
echo -e "\n-->preexec command: $BASH_COMMAND"
}
trap 'preexec' DEBUG
function testfunc()
{
echo "testfunc called $1"
}
testfunc "main"
source "source.sh"
exit 0
dove source.sh è
#!/bin/bash
testfunc "source"
dà:
-->preexec command: testfunc "main"
testfunc called main
-->preexec command: source "source.sh"
testfunc called source
-->preexec command: exit 0
il che significa che ogni comandi all'interno del file di origine sono n ot intrappolato dalla trappola DEBUG.
Infatti se aggiungo la linea
trap 'preexec' DEBUG
all'interno source.sh come seconda linea, tutto funziona come voleva (i comandi all'interno di file di origine sono intrappolati troppo).
Come posso rendere questo un comportamento predefinito al fine di evitare di ripetere la riga sopra per qualsiasi file ho bisogno di origine? In altre parole: c'è qualche possibilità di dire al file di origine di ereditare la trappola di DEBUG?