fruitcantfly

joined 2 years ago
[โ€“] [email protected] 2 points 1 week ago* (last edited 1 week ago) (1 children)

Unix shell scripts are one of the few holdouts.

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.

[โ€“] [email protected] 6 points 1 week ago (2 children)

It is normal usage. Though personally I'd probably make another "main" function, to avoid declaring a bunch of global variables