if [ "$变量1"x = "$变量2"x ]中x的含义

时间:2022-12-03 11:52:02

问题:if [ "$变量1"x = "$变量2"x ]中x的含义是?

答:“x”字符可以为任意字符,用于防止变量为空时,某些版本的bash中会产生错误;

在一个混合测试中,即使使用引用的字符串变量也可能还不够,如果$string为空的话,[ -n "$string" -o "$a" = "$b" ]可能会在某些版本的BASH中产生错误,安全的做法是附加一个额外的字符给可能的空变量,如[ "x$sting" != x -o "x$a" = "x$b" ](“x”字符是可以互相抵消的)

引自:《高级bash脚本编程指南》