Tôi đang viết một makefile trong bash và tôi có mục tiêu trong đó tôi cố gắng tìm tệp nếu tồn tại và mặc dù tôi nghĩ cú pháp là chính xác, tôi vẫn cho tôi một lỗi.Lỗi cú pháp: kết thúc tệp bất ngờ (mong đợi "fi")
Đây là kịch bản mà tôi đang cố gắng để chạy
read:
if [ -e testFile] ; then \
cat testFile\
fi
Tôi đang sử dụng các tab để đó không phải là một vấn đề.
Lỗi này là (khi tôi gõ vào: "làm cho đọc")
if [ -e testFile] ; then \
cat testFile \
fi
/bin/sh: Syntax error: end of file unexpected (expecting "fi")
make: *** [read] Error 2
giải pháp thay thế hoạt động nhưng tôi phải sử dụng cú pháp if..then. thêm dấu chấm phẩy dường như không giải quyết được vấn đề. – Jaelebi
Lạ. Tôi đã thử nó lần đầu tiên với dấu chấm phẩy và nó không hoạt động. Lần thứ hai tôi chạy nó nó đã làm việc. Cảm ơn – Jaelebi
Chỉ cần một lưu ý cho bản thân: Ban đầu tôi đã viết các câu lệnh 'bash' đơn giản trong makefile, và có cùng một lỗi - và như chú thích câu trả lời này, mẹo là để cho makefile nhận ra lệnh shell dưới dạng một dòng; do đó tôi cần _both_ dấu chấm phẩy ';' (để tách các lệnh shell) _and_ dấu gạch chéo ngược '\\' (để thoát khỏi dòng mới tiếp theo) để làm cho nó hoạt động ... Chúc mừng! – sdaau