I don’t know if this applies to other shells, but bash will not only execute your script line-by-line, it will also read it line-by-line. Which means that you can modify the behavior of a running script by editing lines that have not yet been executed*. It’s absolutely bonkers, and I’m sure that it has caused more than one system failure, during upgrades.
* For example, if you run the following script
echo"hello"sleep 5
echo"goodbye"
and then edit the third line before the 5 second sleep has elapsed, then the modified line will be executed.
I don’t know if this applies to other shells, but bash will not only execute your script line-by-line, it will also read it line-by-line. Which means that you can modify the behavior of a running script by editing lines that have not yet been executed*. It’s absolutely bonkers, and I’m sure that it has caused more than one system failure, during upgrades.
* For example, if you run the following script
echo "hello" sleep 5 echo "goodbye"
and then edit the third line before the 5 second sleep has elapsed, then the modified line will be executed.
I have run into the problem of modifying a bash script while it is running.