Thứ tự dòng tệp văn bản bị rối trong thiết bị đầu cuối


0

Tôi đã viết một kịch bản bash đơn giản cho một nhiệm vụ nhỏ.

 echo starting
 URL="10.10.0.1/api/monitoring/traffic-statistics"
 curl -b cookie $URL

Khi tôi thực hiện nó bằng cách sử dụng bash script.sh, nó chỉ in curl -b cookie pi/monitoring/traffic-statistics. Như thể tập tin đã nói echo curl -b cookie $URLvà bằng cách nào đó URL bị hỏng. Khi tôi gõ cat script.sh, thay vì liệt kê nội dung tệp, nó chỉ hiển thị một phần của một dòng trong tập lệnh. Lưu ý: Tôi đã chỉnh sửa tệp trong vim và nó đang hiển thị nó mà không gặp vấn đề gì. Trình chỉnh sửa Nano cũng cho thấy nội dung tương tự. Nhưng khi nói đến bash, nó làm rối trật tự, hoặc khi thực thi tệp hoặc chỉ đổ nội dung. Đây là bãi chứa hex. ( xxd script.sh)

00000000: 6563 686f 2073 7461 7274 696e 670d 5552  echo starting.UR
00000010: 4c3d 2231 302e 3130 2e30 2e31 2f61 7069  L="10.10.0.1/api
00000020: 2f6d 6f6e 6974 6f72 696e 672f 7472 6166  /monitoring/traf
00000030: 6669 632d 7374 6174 6973 7469 6373 220d  fic-statistics".
00000040: 6375 726c 202d 6220 636f 6f6b 6965 2024  curl -b cookie $
00000050: 5552 4c0d                                URL.

Tôi dường như không thể tìm thấy bất kỳ \rnhân vật đi lạc nào. Tôi đã làm gì sai ở đây và làm cách nào để tạo một tệp thích hợp mà bash sẽ chấp nhận?


1
Bạn đã quên shebang và bạn sử dụng CR (x0d) thay vì LF (x0a) trong tệp sh của bạn.
klanomath

Đúng là đã lừa. Tôi bằng cách nào đó đã cấu hình sai vimrc của tôi và sau đó đọc 0x0d là LF và nghĩ rằng nó tìm thấy. Tôi đã không nghĩ nhiều về shebang vì tôi đã chạy nó bằng lệnh bash.
chamod

Bạn sẽ đặt nó như một câu trả lời để tôi có thể chấp nhận nó.
chamod

1

Câu trả lời:


1

Bạn đã định cấu hình sai vimrc của mình và trả về vận chuyển (CR hoặc 0x0d) thay vì nguồn cấp dữ liệu dòng (LF hoặc 0x0a) được nhập / đọc.

Vì vậy, sửa đổi vimrc trở lại hành vi tiêu chuẩn.

Thiếu shebang (ví dụ #!/bin/bash) ở đầu không phải là nguyên nhân của kịch bản thất bại. Tôi sẽ bao gồm nó mặc dù - chỉ để dự phòng.

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.