Dlaczego porównania skryptów powłoki często używają x $ VAR = xyes?

Widzę to często w skryptach budowania projektów, które używają autotools (autoconf, automake). Kiedy ktoś chce sprawdzić wartość zmiennej powłoki, często używa tego idiomu:

if test "x$SHELL_VAR" = "xyes"; then
...

Co to za przewaga nad zwykłym sprawdzeniem takiej wartości:

if test $SHELL_VAR = "yes"; then
...

Sądzę, że musi istnieć jakiś powód, dla którego tak często to widzę, ale nie wiem, co to jest.

questionAnswers(7)

yourAnswerToTheQuestion