How to list variables declared in script in bash?


In my script in bash, there are lot of variables, and I have to make something to save them to file. My question is how to list all variables declared in my script and get list like this:

3/30/2019 9:41:44 PM

Accepted Answer

set will output the variables, unfortunately it will also output the functions defines as well.

Luckily POSIX mode only outputs the variables:

( set -o posix ; set ) | less

Piping to less, or redirect to where you want the options.

So to get the variables declared in just the script:

( set -o posix ; set ) >/tmp/variables.before
source script
( set -o posix ; set ) >/tmp/variables.after
diff /tmp/variables.before /tmp/variables.after
rm /tmp/variables.before /tmp/variables.after

(Or at least something based on that :-) )

8/20/2009 11:10:39 AM

compgen -v

It lists all variables including local ones. I learned it from Get list of variables whose name matches a certain pattern, and used it in my script.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow