2015-04-11 17 views
5

Tôi đang cố gắng để chạy một lệnh bài build trong CMake 3.1.1 qua:

ADD_CUSTOM_COMMAND(
    TARGET mytarget 
    POST_BUILD 
    COMMAND for i in `ls *` \; do echo \$i \; done \; 

Tuy nhiên, biến $ i được đánh giá không có gì mặc dù tôi thoát khỏi dấu đô la. Theo nhật ký, lệnh được đánh giá là:

for i in `ls *` ; do echo ; done ; 

Tôi đã cố gắng mà không thoát dấu đô la, nhưng nó dẫn đến cùng một vấn đề. Double slash không hoạt động. Bây giờ tôi đang bối rối ...

Bạn có thể đề xuất cách chạy lệnh sử dụng dấu đô la không?

P.S. Đây chỉ là một ví dụ. Lệnh thực tế của tôi hơi phức tạp hơn một chút và tôi không nghĩ rằng tôi có thể làm việc đó mà không cần sử dụng các ký hiệu đô la.

+0

Hãy thử điều này: echo \ '$ i' – Kavish

+0

Đó là những gì tôi nhận được: Lỗi cú pháp trong mã cmake tại .../CMakeLists.txt: 210 khi phân tích chuỗi \ '$ i' – Vyacheslav

+0

Trong bash, chúng ta cần sử dụng tùy chọn -e của tiếng vọng để thoát có hiệu lực. – Kavish

Trả lời

Các vấn đề liên quan