Lệnh trong kịch bản không thành công với lỗi không tìm thấy lỗi, nhưng chạy tốt trên dòng lệnh


1

Tôi đã tạo một môi trường tối thiểu trên thiết bị ARM nhúng của mình chỉ bao gồm nhân Linux và với Busybox và hệ thống tệp tối thiểu trong ảnh initrd. tôi có một inittab chạy /etc/init.d/rcS khi bắt đầu

Tôi có dòng sau rcS:

/bin/mount -t proc none /proc

Tuy nhiên, khi dòng này chạy, tôi nhận được

/etc/init.d/rcS: line 2: /bin/mount -t proc none /proc: not found

Dòng cuối cùng của rcS xuất hiện để thực thi - dòng đó chỉ đơn giản là /bin/sh để lấy một cái vỏ, và cái vỏ sẽ tự động mở ra.

Khi tôi chạy lệnh mount chính xác từ shell, nó hoạt động. /bin/mount là một liên kết đến /bin/busybox.

Tại sao kịch bản của tôi không thể tìm thấy /bin/mount?


Bạn có thể vui lòng gửi một bản sao chính xác và dán nội dung của RCS (hoặc tải lên gist.github.com nếu nó quá lớn)? Ngoài ra, bạn là chắc chắn rồi bạn đã sao chép thông báo lỗi chính xác đúng?
BenjiWiebe

Tôi tìm thấy lỗi của tôi, xem câu trả lời của tôi dưới đây. Cảm ơn, mặc dù :)
Steve

Câu trả lời:


1

Hóa ra, khoảng trắng trong tệp thực sự là hai ký tự, 0xD0 0xA0 (Unicode? Có lẽ chỉ là trùng hợp ngẫu nhiên khi những người trông giống CR / LF đã thay đổi 4 bit ... Chúng cũng xuất hiện dưới dạng một ký tự trống duy nhất, không phải hai). Một manh mối ngay lập tức là thông báo lỗi - nó chỉ nên hiển thị lệnh chứ không hiển thị các tham số, nhưng không có khoảng trắng nào trong dòng.

Khi tôi phát hiện ra điều đó, tôi nhận ra nguyên nhân có lẽ là gì. Hệ điều hành của tôi là Windows 7 và tôi đang chạy Ubuntu trong VirtualBox VM và tôi sử dụng bảng tạm được chia sẻ. Tôi đã sao chép tập lệnh từ một trang web trong Chrome trên Windows 7 và dán nó vào gedit trên Ubuntu. Các ký tự đó đã được sao chép từ trang web hoặc một cái gì đó không phát đúng với mã hóa trên đường từ trang đến gedit.

Thay thế những người có ký tự không gian đã giải quyết nó.


Vấn đề thú vị. Và sửa chữa. :)
BenjiWiebe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.