Running następujący fragment:w jaki sposób plik źródłowy może odziedziczyć pułapkę 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
gdzie source.sh jest
#!/bin/bash
testfunc "source"
daje:
-->preexec command: testfunc "main"
testfunc called main
-->preexec command: source "source.sh"
testfunc called source
-->preexec command: exit 0
co oznacza, że każdy polecenia wewnątrz pliku pochodzących są n ot uwięziony przez pułapkę DEBUG.
W rzeczywistości, jeśli mogę dodać linię
trap 'preexec' DEBUG
wewnątrz source.sh jako drugą linię, wszystko działa jak chciał (polecenia wewnątrz pliku źródłowego są uwięzione też).
Jak mogę ustawić to zachowanie domyślne, aby uniknąć powtarzania powyższego wiersza dla dowolnego pliku, który muszę pobrać? Innymi słowy: czy jest jakaś szansa, aby powiedzieć plikowi źródłowemu o odziedziczeniu pułapki DEBUG?