Nếu makefile của bạn thực sự trông như thế này, bạn sẽ gặp lỗi, vì tôi không thấy cú pháp thực tế, chỉ cú pháp trình bao. Tuy nhiên, quả cầu pha lê của tôi nói với tôi rằng hai dòng này có thể là một phần của công thức cho một quy tắc. Nếu có, bạn nên nhận ra cách thực hiện công thức nấu ăn; đối với mỗi dòng, một subshell riêng biệt được tạo ra, trong đó dòng lệnh được thực hiện độc lập: hai lệnh của bạn không biết gì về môi trường của nhau. Nếu bạn muốn hai lệnh được thực hiện trong cùng một vỏ bọc, bạn nên phát hành chúng dưới dạng một dòng (sử dụng các ký tự tiếp tục dòng nếu cần) hoặc sử dụng chỉ thị ONESHELL của make.
Điều đó không hữu ích. Cho tôi biết: tại sao là $! trống khi được hỏi trong Makefiles? – nalply
@nalply: Nó trống vì không xác định biến với tên đó. Nếu bạn muốn sử dụng nó trong trình bao, bạn phải thoát khỏi ký hiệu đô la: '$$!', Nhưng bạn phải nhận thức được nhận xét của tôi về việc phát hành các lệnh trên một dòng, cách nhau bằng ví dụ: dấu chấm phẩy. – eriktous
@eriktous câu trả lời tuyệt vời, chắc chắn hữu ích. Tôi đã có vấn đề nalply tiếp theo, tất nhiên là $$! giải quyết điều đó. – David