ลำดับบรรทัดไฟล์ข้อความเกิดความสับสนในเทอร์มินัล


0

ฉันกำลังเขียนสคริปต์ทุบตีง่ายๆสำหรับงานเล็ก ๆ

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

เมื่อผมดำเนินการโดยใช้ก็แค่พิมพ์bash script.sh curl -b cookie pi/monitoring/traffic-statisticsมันเหมือนกับว่าไฟล์ดังกล่าวecho curl -b cookie $URLและ URL เสียหาย เมื่อฉันพิมพ์cat script.shแทนที่จะแสดงรายการเนื้อหาไฟล์มันจะแสดงเพียงส่วนหนึ่งของหนึ่งบรรทัดในสคริปต์ หมายเหตุ: ฉันแก้ไขไฟล์เป็นกลุ่มและมันก็แสดงไฟล์โดยไม่มีปัญหาใด ๆ บรรณาธิการนาโนยังแสดงเนื้อหาเดียวกัน แต่เมื่อพูดถึงทุบตีมันก็จะทำให้คำสั่งยุ่งเหยิงไม่ว่าจะเป็นการเรียกใช้งานไฟล์หรือเพียงแค่ทิ้งเนื้อหา นี่คือฐานสิบหก ( 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.

ฉันไม่สามารถหา\rตัวละครที่หลงทางได้เช่นกัน ฉันทำอะไรผิดที่นี่และฉันจะสร้างไฟล์ที่เหมาะสมที่ทุบตีจะยอมรับได้อย่างไร


1
คุณลืมShebangและคุณใช้ CR (x0d) แทน LF (x0a) ในไฟล์ sh ของคุณ
klanomath

ใช่นั่นเป็นเคล็ดลับ ฉันกำหนดค่า vimrc ของฉันไม่ถูกต้องแล้วอ่าน 0x0d เป็น LF และคิดว่ามันพบ ฉันไม่ได้คิดอะไรเกี่ยวกับ shebang มากนักเพราะฉันใช้คำสั่ง bash
chamod

คุณจะใส่มันเป็นคำตอบเพื่อให้ฉันสามารถยอมรับได้
chamod

1
shebang ไม่จำเป็นจริงๆที่นี่
nohillside

คำตอบ:


1

คุณกำหนดค่า vimrc ของคุณผิดพลาดและคืนค่าขนส่ง (CR หรือ 0x0d) แทนการป้อนบรรทัด (LF หรือ 0x0a)

ดังนั้นปรับเปลี่ยน vimrc กลับไปเป็นพฤติกรรมมาตรฐาน

Shebang ที่หายไป (เช่น#!/bin/bash) ที่จุดเริ่มต้นไม่ใช่สาเหตุของสคริปต์ที่ล้มเหลว ฉันจะรวมมัน - เพียงเพื่อความซ้ำซ้อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.