Error messages for fatal error e.g.   ${x?foo}   or   rovar=foo   or
$x expanded with nounset, report an error message prefixed by the string
"environment:" instead of "scriptname:" (or "$0:").

  $ bash -c '${x?hi}' asd
  asd: line 1: x: hi
  $ bash -c 'a () { ${x?hi} ;}; a' asd
  environment: line 1: x: hi

  $ bash -c 'readonly x=x; x=y' asd
  asd: line 1: x: readonly variable
  $ bash -c 'readonly x=x; a () { x=y ;}; a'
  environment: line 1: x: readonly variable

  $ bash -uc '$x' asd
  asd: line 1: x: unbound variable
  $ bash -uc 'a () { $x ;}; a' asd
  environment: line 1: x: unbound variable

This bug seems to have been introduced in Bash 4.4:

  $ bash43 -c '${x?hi}' asd
  asd: x: unbound variable
  $ bash43 -c 'a () { ${x?hi} ;}; a' asd
  asd: x: unbound variable

  $ bash44 -c '${x?hi}' asd
  asd: x: unbound variable
  $ bash44 -c 'a () { ${x?hi} ;}; a' asd
  environment: x: unbound variable

o/
 emanuele6

Reply via email to