Tôi đang sử dụng VM (trong trường hợp của tôi chỉ cần boot2docker) để chạy các vùng chứa docker trên máy chủ Windows. Đối với convinience, các tệp nguồn của tôi được ánh xạ từ hệ thống tệp máy chủ, do đó các tệp văn bản theo mặc định sử dụng các đầu cuối dòng CRLF kiểu Windows thay vì các kết thúc LF kiểu Unix.Bash - chạy liên tục các tập lệnh có dòng kết thúc CRLF
Khi tôi cố gắng để chạy một số file sh từ thùng chứa Docker, tôi sẽ nhận được một lỗi
bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory
Có cách nào làm thế nào tôi có thể bằng cách nào đó nói với bash/sh phiên dịch tự động chuyển đổi \ r \ n để \ n và chạy một tệp?
Chắc chắn, tôi có thể làm một số piplelining như thế này cat script.sh | tr -d "\r" | sh
hoặc thậm chí tạo một bí danh cho điều đó, nhưng nó sẽ không bao gồm tình huống mà một kịch bản bao gồm một kịch bản khác.
Giải pháp duy nhất có thể chấp nhận được mà tôi đã tìm thấy cho đến nay, là đặt Git thành các tệp nguồn thanh toán ở định dạng UNIX.
bạn có thể đăng 'echo $ TERM' không? – user2915097
Đây là vùng chứa docker tiêu chuẩn, 'echo $ TERM' trả về' câm' – trebi
thử 'xuất TERM = xterm' hoặc' exec>/dev/tty 2>/dev/tty dev/tty' (mẹo từ https://github.com/docker/docker/issues/728) – user2915097