Score:0

สคริปต์เรียกใช้เสียงสะท้อนตามปกติ แต่ไม่พิมพ์สิ่งใดสำหรับเสียงก้องที่วนซ้ำ

ธง cn

ฉันกำลังพยายามเขียนสคริปต์ที่เปิดเทอร์มินัลและวนซ้ำในนั้น ฉันมีดังต่อไปนี้

#!/usr/bin/bash

gnome-terminal -- /bin/bash -c "for i in 1 2 3; do echo $i; done; exec bash"

เมื่อฉันรันสคริปต์นี้ มันแสดงบรรทัดว่างสามบรรทัด จากนั้นเรียกใช้ bash แต่ถ้าวิ่ง สำหรับฉันใน 1 2 3; ทำ echo $i; เสร็จแล้ว; ผู้บริหารทุบตี ในเทอร์มินัลจะพิมพ์ตามปกติ นอกจากนี้ถ้าฉันเขียนต่อไปนี้ก็จะพิมพ์สวัสดีตามปกติเช่นกัน ดังนั้นฉันเชื่อว่ามันเป็นปัญหากับ for loop

#!/usr/bin/bash

gnome-terminal -- /bin/bash -c "echo สวัสดี"

ฉันไม่พบใครที่มีปัญหาคล้ายกัน

cn flag
Ray
ทำไมคุณถึงมี `exec bash` ต่อท้าย? ฉันไม่แน่ใจว่าคุณต้องการรันลูปภายใน bash หรือไม่ จากนั้นเริ่ม bash shell ใหม่... อันที่จริง มีบางอย่างผิดปกติกับโค้ดของคุณ แต่ฉันไม่สามารถเอานิ้วไปแตะมันได้... คุณได้รับ 3 บรรทัดว่างเพราะเป็นค่าของ `$i` สมมติว่าคุณใส่ `i=10` แล้วรันลูป ฉันคิดว่าคุณจะพิมพ์ `10` ออกมาสามตัว
bac0n avatar
cn flag
คุณต้องใช้เครื่องหมายคำพูดเดี่ยว มิฉะนั้น `$i` จะประเมิน ดังนั้น ... บรรทัดว่าง
matticebox avatar
cn flag
@Ray ฉันมี `exec bash` ในตอนท้ายดังนั้นฉันจึงสามารถดูที่เทอร์มินัลได้หลังจากที่มันวนซ้ำ echo ฉันใช้โหมดสลีปมาก่อน แต่ฉันคิดว่าการเริ่ม bash shell ตัวอื่นจะง่ายกว่า ฉันเป็น noob และไม่เข้าใจสิ่งที่คุณหมายถึงโดย `i=10` แต่ถ้าฉันใส่ `10` แทน `$i` มันจะพิมพ์ `10` สามครั้ง มันไม่สมเหตุสมผลสำหรับฉันเพราะเมื่อฉันรันโค้ดด้วย `$i` ในเทอร์มินัล มันจะพิมพ์ `1` แล้วก็ `2` แล้วก็ `3` ตัวอย่างเช่น `สำหรับฉันในสวัสดี; ทำ echo $i; เสร็จแล้ว 'จะพิมพ์ 'สวัสดี' ในเทอร์มินัล
matticebox avatar
cn flag
@bac0n ฉันลอง `gnome-terminal -- /bin/bash -c "for i in 1 2 3; do echo '$i'; done; exec bash"` และมันยังคงแสดงบรรทัดว่าง เว้นแต่ว่าฉันจะไม่สังเกตเห็น อย่างอื่นที่ฉันทำผิด
bac0n avatar
cn flag
ไม่ `/bin/bash -c 'สำหรับ i ใน 1 2 3; ทำ echo $i; เสร็จแล้ว; ผู้บริหาร bash'`
matticebox avatar
cn flag
@ bac0n มันใช้งานได้ ขอบคุณ แต่ฉันไม่เข้าใจว่าเกิดอะไรขึ้นกันแน่... ฉันคิดว่าการใช้อัญประกาศคู่และอัญประกาศเดี่ยวนั้นเป็นเพียงเพื่อให้คุณใส่เครื่องหมายอัญประกาศไว้ข้างในอีกอัญประกาศหนึ่ง
Artur Meinild avatar
vn flag
[ดูที่นี่](https://stackoverflow.com/questions/6697753/difference-between-single-and-double-quotes-in-bash)

โพสต์คำตอบ

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