Hello.

I have noticed that  declare -f  does not output valid code when a
pattern is `esac'.

To use esac as a pattern you need to use the (esac) syntax, but
declare -f  does not use it, and ends up generating invalid code.

  a () {
    case $1 in
      hi) echo hi ;;
      (esac) echo esac ;;
      *) echo something ;;
    esac
  }

  $ declare -f a
  a () 
  { 
      case $1 in 
          hi)
              echo hi
          ;;
          esac)
              echo esac
          ;;
          *)
              echo somethig
          ;;
      esac
  }

  $ declare -f a | bash
  bash: line 7: syntax error near unexpected token `)'
  bash: line 7: `        esac)'

o/
 emanuele6

Reply via email to