Score:0

เรียกใช้คำสั่งที่ทำงานในเชลล์เป็นสคริปต์

ธง in

การรันคำสั่งต่อไปนี้ในเชลล์จะทำงานโดยไม่มีปัญหา:

ssh user@machine systemctl สถานะ my-service.service
ssh user@machine sudo systemctl หยุด my-service.service
scp -r ./my-service/* user@machine:/home/user/my-service
ssh user@machine chmod +x /home/user/my-service/my-service
ssh user@machine sudo systemctl เริ่ม my-service.service
ssh user@machine sudo systemctl สถานะ my-service.service

อย่างไรก็ตาม ใส่สิ่งนี้ในไฟล์ ปรับใช้.sh ไฟล์ส่งผลให้ไม่สามารถดำเนินการใด ๆ ข้างต้นได้

ข้อผิดพลาด:

  • ชื่อหน่วยที่ไม่ถูกต้อง "my-service" ถูก Escape เป็น "my-service\x0d" (บางทีคุณควรใช้ systemd-escape?)
  • ไม่พบหน่วย my-service\x0d.service
  • ชื่อหน่วยที่ไม่ถูกต้อง "my-service.service" ถูก Escape เป็น "my-service.service\x0d" (บางทีคุณควรใช้ systemd-escape?)
  • ไม่สามารถหยุด my-service\x0d.service: ไม่ได้โหลดหน่วย my-service.service\x0d.service : ไม่มีไฟล์หรือไดเรกทอรี่ล็อค/
  • chmod: ไม่สามารถเข้าถึง '/home/user/my-service/my-service'$'\r': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
  • ชื่อหน่วยที่ไม่ถูกต้อง "my-service.service" ถูก Escape เป็น "my-service.service\x0d" (บางทีคุณควรใช้ systemd-escape?)
  • ไม่สามารถเริ่ม my-service.service\x0d.service: ไม่พบหน่วย my-service.service\x0d.service ชื่อหน่วยที่ไม่ถูกต้อง "my-service.service" ถูก Escape เป็น "my-service.service\x0d" (บางทีคุณควรใช้ systemd-escape?)
  • ไม่พบหน่วย my-service.service\x0d.service

บ้างก็แตกหัก ดูเหมือนว่าจะเกี่ยวข้องกับการหลบหนี ด้วยเหตุผลบางอย่างการเพิ่มช่องว่างที่ส่วนท้ายของบรรทัดทำให้มันใช้งานได้ แต่ก็ยังไม่มีข้อผิดพลาด

Googling เกี่ยวกับข้อผิดพลาดแสดงความนิยมบางอย่างเกี่ยวกับการใช้ -- และเพิ่มพร้อมกับช่องว่างต่อท้ายทำให้บางคำสั่งทำงานได้ แต่ยังคงให้ข้อผิดพลาดในการหลบหนี

Score:2
ธง cn

ฉันจะวางดอลลาร์เป็นโดนัทที่คุณแก้ไขไฟล์นี้ในหรือจาก หน้าต่าง เครื่องจักร.

Linux ใช้ \x0a (รหัส ASCII 10) เพื่อแยกบรรทัดภายในไฟล์ (หรือสคริปต์)
Windows ใช้การรวมกันของ \x0d ("Carriage_Return", ASCII code 13) และ \x0a ("Line Feed", ASCII 10) เพื่อทำ เหมือนกัน งาน.

มอบไฟล์ที่แก้ไขด้วย Windows ให้กับเครื่อง Linux แล้วระบบจะเห็น ทุกบรรทัด เนื่องจากมีสิ่งภายนอก \x0d ในตอนท้าย

รับตัวเอง เหมาะสม โปรแกรมแก้ไข Windows (แผ่นจดบันทึก++ ฟรีและแนะนำเป็นอย่างยิ่ง) หรือเรียนรู้วิธีใช้ vi. แน่นอนว่ามันมีช่วงการเรียนรู้ของตัวเอง แต่ความสามารถบางอย่างอาจทำให้คุณประหลาดใจ!

in flag
ฉันรู้สึกโง่มาก :-) นี่แหละ ฉันแก้ไขไฟล์ใน vscode เปลี่ยนจาก CRLF เป็น LF ที่ด้านล่างขวา บันทึกแล้วรันโดยไม่มีปัญหา

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา