Ho provato un seguente script:
#!/bin/bash
trap 'echo "touching a file" && touch $FILE' EXIT
foo1(){
echo "foo1"
}
foo(){
echo "foo"
export FILE=${FILE:-/tmp/file1}
}
(foo1)
foo
L'output per lo script sopra era:
[root@usr1 my_tests]# ./test.sh
foo1
foo
touching a file
Tuttavia mi aspettavo che anche la trap venisse chiamata all'uscita foo1
, che viene chiamata in una subshell.
- È previsto?
- È
trap
ereditato da una subshell? - Se sì, allora in che caso viene
trap
ereditato da una subshell?