Bash Version: 4.4
Patch Level: 19
Release Status: release
Configuration Information:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Description:
I've come to the conclusion that bash scripts
(1) are not entirely loaded in memory at once
or, at least,
(2) are re-read (from the disk?) if the file is updated
Something tells me this is a really bad idea (if it turns
out to be a "feature" and not a bug), because if a script
is launched with "&" and then the file is edited/updated,
the result will be unpredictable.
Repeat-By:
Create an empty directory, and then two script files
s1 and s2, contents given below (enclosed by '--')
s1:
--
#!/bin/bash
#
sleep 3
#
\rm -f f1
#
exit
#
--
s2:
--
#!/bin/bash
#
sleep 1
#
\rm -f f2
#
exit
#
--
Now execute
# touch f1 f2
# ( ./s1 & ) ; sleep 1 ; \cp -f s2 s1
and see f2 disappear, not f1 .
Best regards,
Paulo Nogueira