2012-09-05 34 views
13

thể trùng lặp:
How to get the second dependency file using Automatic Variables in a Makefile?Tôi có thể có được điều kiện tiên quyết thứ hai trong GNU?

Tôi đang sử dụng GNU thực hiện, và tôi đang sử dụng các biến tự động như vậy ở $<, $^ vv Tôi biết rằng $< chỉ là điều kiện tiên quyết đầu tiên, và $^ là tất cả các điều kiện tiên quyết. Có cách nào để có được điều kiện tiên quyết thứ hai không?

+0

Bạn có thể nói thêm một chút về lý do bạn cần điều này hoặc những gì bạn đang cố gắng hoàn thành không? Bạn có thể chọn phần tử '$ ^' theo phần tử (nghĩa là xử lý nó như một mảng), và sau đó lấy phần tử thứ hai theo cách đó. – Novelocrat

+0

@Beta, Yep - đây là bản sao. Tôi sẽ bỏ phiếu để đóng nó như vậy. – pauldoo

Trả lời

34

Giả sử điều kiện tiên quyết của bạn là thẻ thường xuyên,

echo $(word 2,$^) 

Tôi thường thấy mình đưa ra số đầu tiên một vị trí đặc biệt, và truy cập vào điều kiện tiên quyết còn lại với

echo $(filter-out $<,$^) 
+0

Thủ thuật lọc ra là chính xác những gì tôi đang tìm kiếm :) – vbwx

-2

Điều tốt nhất tôi có thể đưa ra với, mà tôi cảm thấy là một chút của một hack, là sử dụng echo $^ | cut -f2 -d' ', à la:

output.txt: a.txt b.txt 
    cat $< | ./something `echo $^ | cut -f2 -d' '` > [email protected] 

Tôi rất muốn nghe câu trả lời hay hơn điều này. :)

+6

Ở đây bạn đi: '$ (từ 2, $ ^)' –

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