Score:0

จะสร้างการอ่านอินพุตด้วยการขึ้นบรรทัดใหม่ใน bash ได้อย่างไร

ธง us

ฉันต้องการถาม

ฉันมีปัญหา ฉันจะรับข้อมูลใน bash เพื่อขึ้นบรรทัดใหม่ได้อย่างไร

อ่าน -p "ชื่อรายการ:" รายการ

cat <<EOF >names.txt
ชื่อรายการ:
รายการ $

อฟ

ฉันไม่สามารถขึ้นบรรทัดใหม่หรือใช้คำสั่ง \n ได้ จะเพิ่มคำสั่งบรรทัดใหม่ได้อย่างไร ?

ฉันต้องการผลลัพธ์เอาต์พุต names.txt แบบนี้

รายชื่อ :
    โรเบิร์ต
    เจมส์
    ซามูเอล
FedKad avatar
cn flag
โปรดเจาะจงมากขึ้น [แก้ไข] คำถามของคุณและระบุตัวอย่างอินพุตและผลลัพธ์ที่คาดหวัง
Score:2
ธง in

หากคุณต้องการรายการที่มีหนึ่งรายการต่อบรรทัด คุณสามารถใช้ อ่าน:

#อ่านรายชื่อ
echo "ป้อนหนึ่งชื่อต่อบรรทัด จบด้วย Ctrl-D:"
รายการ readarray -t

# ใช้รายการเป็นอาร์เรย์ปกติ
echo "รายชื่อ:"
พิมพ์f '%s\n' "${list[@]}"

ตอนนี้คุณสามารถใช้ รายการ เป็นอาร์เรย์ปกติ เช่น ${รายการ[1]}.

Score:1
ธง sa

ตามค่าเริ่มต้น bash จะใช้อักขระเว้นวรรคเป็นตัวคั่นเพื่อแยกคำ เชลล์สคริปต์นี้ใช้อักขระเว้นวรรคเป็นตัวคั่นเพื่อแยกสามชื่อที่ผู้ใช้ป้อน วางเชลล์สคริปต์ต่อไปนี้ลงในไฟล์ข้อความชื่อ input-names.sh คลิกขวาที่ input-names.sh เลือก คุณสมบัติ -> สิทธิ์ tab และใส่เครื่องหมายถูกทางด้านซ้ายของ อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม.

#!/bin/bash

# อ่านหลายอินพุต
echo "พิมพ์สามชื่อโดยคั่นด้วยอักขระช่องว่าง"
อ่านชื่อ1ชื่อ2ชื่อ3
echo "ชื่อรายการ :"
เสียงสะท้อน "$name1"
เสียงสะท้อน "$name2"
เสียงสะท้อน "$name3"

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากเรียกใช้สคริปต์ด้านบน

:~$ ./input-names.sh
พิมพ์สามชื่อโดยคั่นด้วยอักขระเว้นวรรค
โรเบิร์ต เจมส์ ซามูเอล
รายชื่อ :
    โรเบิร์ต
    เจมส์ 
    ซามูเอล 

โพสต์คำตอบ

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