sed: Print bash environment

 
 7.5 Print 'bash' Environment
 ============================
 
 This script strips the definition of the shell functions from the output
 of the 'set' Bourne-shell command.
 
      #!/bin/sh
 
      set | sed -n '
      :x
 
      # if no occurrence of "=()" print and load next line
      /=()/! { p; b; }
      / () $/! { p; b; }
 
      # possible start of functions section
      # save the line in case this is a var like FOO="() "
      h
 
      # if the next line has a brace, we quit because
      # nothing comes after functions
      n
      /^{/ q
 
      # print the old line
      x; p
 
      # work on the new line now
      x; bx
      '