# fixes for bugs in bash-4.2 regarding empty strings in expand_string_for_rhs f=abc recho ${f##""a} recho ${f##"$v"a} recho ${f%%""c} recho ${f%%"$v"c} recho ${f//""a} recho ${f//"$v"a} recho ${f/""a""b/} recho ${f/""c/} recho ${f/"$v"c/} unset foo empty foo=aabbcc recho ${foo/bb/} recho ${foo/bb/$empty} recho ${foo/} recho ${empty/} recho ${foo/ } recho ${empty/ } unset foo empty S2=oenophile recho ${S2^"$v"[aeiou]} recho ${S2^^"$v"[aeiou]} recho ${foo:-""} recho ${foo:-""abc} recho "${foo:-''}" recho "${foo:-}" if [[ $var == "" ]]; then echo good 1 fi if [[ "$var"X == ""X ]]; then echo good 2 fi if [ "$var"X == ""X"" ]; then echo good 3 fi if [ X"" == X ]; then echo good 4 fi if [[ X"" == X ]]; then echo good 5 fi case x"" in x) echo 'ok 1' ;; x??) echo 'this would be really odd' ;; x?) echo 'does this prove anything?' echo x""x ;; *) echo 'no match' ;; esac if [[ x"" == x ]]; then echo ok 2 fi if [[ x"" == x"" ]]; then echo ok 3 else echo bad 3 fi case x"" in x"") echo ok 4 ;; *) echo bad 4;; esac if [[ x"" == x"" ]]; then echo ok 5 else echo bad 5 fi case x"" in "x") echo ok 6 ;; *) echo bad 6;; esac case x"" in "x") echo CTLNUL 7 ;; x) echo ok 7 ;; *) echo bad 7 ;; esac