Lỗi cú pháp từ bất ngờ (mong đợi) ) linux

Tôi đã gặp sự cố trên khi chạy tập lệnh python bằng ansible trong máy linux. Giải pháp sau đây, tôi tìm thấy trên Stackoverflow

Câu trả lời ngắn. Chạy chúng dưới dạng python filename.py hoặc nếu không thì hãy thêm dòng #!/usr/bin/python vào đầu tập lệnh Python của bạn

Câu trả lời dài. Khi bạn chạy một tệp từ dòng lệnh trong Linux [chính là thứ mà Raspberry Pi đang chạy], theo mặc định, nó sẽ giả định rằng tệp đó là tệp tập lệnh shell [thường là tập lệnh Bash]. Vì vậy, nó sử dụng shell Bash [hoặc một số shell khác, nhưng thường là Bash] để diễn giải tệp và Bash không biết cú pháp Python. Nếu bạn muốn chạy tệp của mình bằng một trình thông dịch khác [trong trường hợp này là Python], bạn phải thêm một “dòng ma thuật” ở đầu tệp bắt đầu bằng #! [thường được phát âm là "hash-bang" và đôi khi được phát âm là " . Theo sau các ký tự #! là đường dẫn đầy đủ của trình thông dịch sẽ sử dụng, e. g. /usr/bin/python cho tập lệnh Python. [Bạn cũng có thể sử dụng /usr/bin/env python như một câu trả lời khác được gợi ý; tôi thích dùng /usr/bin/python vì không thể hiểu sai trình thông dịch Python theo cách đó. Nhưng đó là đi vào các chủ đề nâng cao có thể nhiều hơn mức bạn cần ngay bây giờ. ]

Vì vậy, khi bạn đặt dòng #!/usr/bin/python ở đầu tập lệnh Python của mình, bạn đang nói cho hệ thống Linux biết trình thông dịch nào sẽ chạy chương trình, và khi đó chương trình sẽ All Just Work™

tôi không đồng ý. Đơn giản vì bạn KHÔNG thể làm điều gì đó và nó hoạt động không nhất thiết có nghĩa đó là một ý tưởng tuyệt vời. Có một khái niệm. mã tự ghi

Vâng, về mặt cú pháp, bạn đúng. Về mặt thực hành tốt, bạn không. IMO

Khi đồng ý với điều này, dữ liệu sử dụng của bạn sẽ được lưu trữ ở Hoa Kỳ và được xử lý bởi Google LLC. Cả Google cũng như các cơ quan liên bang của Hoa Kỳ đều có thể truy cập dữ liệu này và kết hợp dữ liệu đó với bất kỳ dữ liệu nào khác về bạn, chẳng hạn như lịch sử tìm kiếm, tài khoản cá nhân của bạn hoặc bất kỳ dữ liệu nào khác mà Google biết

Xem chính sách bảo mật của chúng tôi để chuyển đổi tính năng này và để tìm hiểu thêm hoặc liên hệ với chúng tôi

Chủ Đề