Greetings,

After upgrading to bash-5.3, I ran into a strange problem with many of my 
scripts: It looks like in bash-5.3, setting the extglob option can crash my 
script, if the shopt command is inside an if-then-fi structure, or if it's 
inside a for-do-done loop. For example, here is a snippet that works fine in 
bash-5.2, but breaks in bash-5.3:
#---------------------------------------
shopt -u extglob
# [...]
if true; then
  shopt -s extglob
  echo /!(tmp.txt)
fi
#---------------------------------------
...and it bombs really bad, it aborts the whole script.

Simillarly, this one breaks too:
#---------------------------------------
shopt -u extglob
# [...]
for i in 1 2; do
  shopt -s extglob
  echo /!(something)
done
#---------------------------------------

And even this one breaks in bash-5.3:
#---------------------------------------
shopt -u extglob
# [...]
shopt -s extglob; echo !(something)
#---------------------------------------

Interestingly, if I modify the if-then-fi structure this way...
#---------------------------------------
shopt -s extglob
if true; then
  echo /!(tmp.txt)
fi
#---------------------------------------
...then it does not break. But then, this is not really a solution to the 
problem.


Yours,
Pourko

-- 
 Secured with Tuta Mail: 
 https://tuta.com/free-email

Reply via email to