Please note: there are many questions about how to test a single shell variable on this site. This question is about testing a script for any undefined variable.
You can use an undefined variable in bash without seeing any error at execution:
#!/bin/bash
echo ${UNDEF_FILE}
ls -l ${UNDEF_FILE}
exit 0
I've found this very error prone. If I want to change the name of a variable in a large script, or remove that variable, all the previous stale references will cause errors in the script. Sometimes this is not obvious to debug or you find out when it's too late.
Why is this allowed? Is there any way to flag undefined variables?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…