Tại sao các câu lệnh có điều kiện trong các kịch bản tự động cấu hình tiền tố các biến của chúng bằng "x"? Ví dụ, vĩ mô được cung cấp bởi GNU để kiểm tra Boost có điều kiện nhưTại sao điều kiện trong tập lệnh autoconf tiền tố biến với "x"?
if test "x$want_boost" = "xyes"; then
Tại sao điều này không được định nghĩa như sau:
if test "$want_boost" = "yes"; then
Để làm rõ: "không dễ như bây giờ" có nghĩa là nhiều hệ vỏ bị lỗi và sẽ không đánh giá đúng các lệnh bằng chuỗi rỗng như 'test" "=" foo "' –
Lý do * khác * này cần thiết là nếu '$ variable' mở rộng đến một cái gì đó bắt đầu bằng dấu gạch ngang,' kiểm tra' có thể giải thích rằng đó là một tùy chọn chứ không phải là một chuỗi được so sánh. Trong vỏ hiện đại, dấu bằng được ưu tiên, nhưng nó không phải luôn luôn như vậy. – zwol