« Autotools Tutorial - Der Ball ist Rund… »

if test x$bla = xyes; then

14 April 2006

Obiges Idiom sieht man oft in Shell-Skripten. Mir war bisher nie so ganz klar wozu das zusätzliche x-Zeichen eingeführt wird. Dieses Posting auf der autoconf-Mailingliste erklärt es ziemlich gut. Kurzform: Das zusätzliche Zeichen stellt sicher, dass nach dem expandieren der Variable kein leerer Ausdruck links vom test Operator steht und damit der Interpreter mit einem Syntax-Error aussteigt. Selbiges könnte aber auch durch Quotes verhindert werden. Allerdings ist so noch nicht das Problem erschlagen, dass der Inhalt der Variablen mit einem “-” beginnen könnte und damit von test als Option intepretiert werden würde. Das zusätzliche Zeichen stellt eben dies sicher.


Leave a reply