Score:0

เชลล์สคริปต์ไม่อ่านไฟล์ตามที่คาดไว้

ธง cn

ด้านล่างนี้เป็นสคริปต์ที่พยายามดำเนินการ:

อ่าน n
สำหรับ ((i=1;i<=$n;i++))
ทำ
file=createserver"$i".json
ไฟล์เสียงสะท้อน $
อินสแตนซ์[$i-1]=$(jq -r '.instance.id' ./$file)
echo $อินสแตนซ์
เสร็จแล้ว

$file แสดงค่าที่ถูกต้อง อย่างไรก็ตาม $instanceid ไม่ใช่ ผลลัพธ์ที่ฉันได้รับมีดังนี้:

createserver1.json
a5a485df-b2e8-4467-9144-d012d96d0305
createserver2.json
**a5a485df-b2e8-4467-9144-d012d96d0305**

ตัวหนาด้านบนไม่เป็นไปตามที่คาดไว้ ไฟล์สองไฟล์จากที่ซึ่ง ID อินสแตนซ์ถูกจับเป็นปัจจุบัน และเนื้อหามีดังนี้:

{"อินสแตนซ์":{"id":"a5a485df-b2e8-4467-9144-d012d96d0305","os":"Ubuntu 18.04 LTS x64"}}
{"อินสแตนซ์":{"id":"4a8ebe11-be1c-45f9-a82c-c41113ecd3a5","os":"Ubuntu 18.04 LTS x64"}}

เมื่อเนื้อหาในไฟล์ต่างกัน เหตุใดสคริปต์จึงรับเนื้อหาจากไฟล์แรกเสมอ ฉันพลาดอะไรไปรึเปล่า? กรุณาแนะนำ

Score:1
ธง gb

คุณสามารถลองได้สองวิธี:

อ่าน n
สำหรับ ((i=1;i<=$n;i++))
ทำ
file=createserver"$i".json
ไฟล์เสียงสะท้อน $
อินสแตนซ์[$i-1]=$(jq -r '.instance.id' ./$file)
เสียงสะท้อน ${instanceid[$i-1]}
เสร็จแล้ว

หรือ

อ่าน n
สำหรับ ((i=1;i<=$n;i++))
ทำ
file=createserver"$i".json
ไฟล์เสียงสะท้อน $
อินสแตนซ์[$i-1]=$(jq -r '.instance.id' ./$file)
เสร็จแล้ว
สำหรับฉันใน ${!instanceid[@]}; ทำ echo ${instanceid[$i]}; เสร็จแล้ว

โพสต์คำตอบ

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