Re: [bug #68131] Shell script misbehaves when edited
Zachary Santer <[email protected]> Mon, 9 Mar 2026 20:02:16 -0400
| Newsgroups | gmane.comp.shells.bash.bugs |
|---|---|
| Message-ID | <CABkLJULvUQzw87YY_+Udr+pCXce9Lj_Td_3uWEEE03nepWUHtA@mail.gmail.com> |
On Mon, Mar 9, 2026 at 11:24 AM Stan Marsh <[email protected]> wrote: > > There *are* scripting languages that read in the entire > source at startup and build an internal representation which is then > executed. These languages then don't care if you mess with the source > while the script is running. Keep in mind, if you want this behavior, it's not hard to get. You can literally just enclose your existing bash script between a pair of curly braces to force bash to parse the whole thing before it starts to run it. Any script I write with any function ends up looking like this: set # options shopt # options unset CDPATH TMOUT # readonly global variables main () { # do things exit 0 } func1 () { # do things } func2 () { # do things } main "${@}" Because the call to main () is the last bit of code in the script, everything has been parsed before it runs there too.