Một biến trở MINGW32_NT-5.1
hoặc CYGWIN_NT-5.1.
(yea, dấu chấm ở cuối)Makefile: chứa chuỗi
Cần phải so sánh rằng var được chứa NT-5.1
vị trí bất cứ nơi nào.
Sử dụng Cygwin và muốn tương thích với khá nhiều bất kỳ * nix nào.
Một biến trở MINGW32_NT-5.1
hoặc CYGWIN_NT-5.1.
(yea, dấu chấm ở cuối)Makefile: chứa chuỗi
Cần phải so sánh rằng var được chứa NT-5.1
vị trí bất cứ nơi nào.
Sử dụng Cygwin và muốn tương thích với khá nhiều bất kỳ * nix nào.
Chức năng findstring là gì trái tim mình mong muốn:
$(findstring
tìm,
trong)
kiếm trong cho một sự xuất hiện của tìm. Nếu nó xảy ra, giá trị là tìm; nếu không, giá trị sẽ trống. Bạn có thể sử dụng hàm này trong một điều kiện để kiểm tra sự hiện diện của một chuỗi con cụ thể trong một chuỗi đã cho. Như vậy, hai ví dụ,
$(findstring a,a b c) $(findstring a,b c)
sản xuất các giá trị
"a"
và""
(chuỗi rỗng), tương ứng. Xem Testing Flags, để có một ứng dụng thực tế củafindstring
.
Cái gì như:
ifneq (,$(findstring NT-5.1,$(VARIABLE)))
# Found
else
# Not found
endif
VARIABLE=NT-5.1_Can_be_any_string
ifeq ($(findstring NT-5.1,$(VARIABLE)),NT-5.1)
# Found
RESULT=found
else
# Not found
RESULT=notfound
endif
all:
@echo "RESULT=${RESULT} , output=$(findstring NT-5.1,$(VARIABLE))"
Nó phù hợp với chuỗi cho trước và trả
và đọc tốt hơn câu trả lời được chấp nhận, IMO. –
Tuyệt vời, chính xác những gì tôi muốn. Chỉ một câu hỏi - dấu phẩy ở đây cho 'ifneq (, $ (...' – Pablo
Phân tích cú pháp nó thành 'ifneq (A, B)' trong đó A là chuỗi rỗng và B là '$ (findstring ...)' Nó có vẻ kỳ lạ bởi vì bạn không trích dẫn chuỗi trong Makefiles –
Trường hợp 'chuỗi tìm kiếm' có nhạy cảm không? Nếu có, có cách nào đơn giản để làm khớp không phân biệt chữ hoa chữ thường? Tài liệu không rõ ràng ... –