Score:0

พิมพ์องค์ประกอบอาร์เรย์จากดัชนี k

ธง jp

ฉันมี bash array และต้องการพิมพ์องค์ประกอบอาร์เรย์ที่เริ่มต้นจากดัชนี เค.

สิ่งต่าง ๆ ไม่ได้ผลด้วยกลยุทธ์ต่อไปนี้

พิมพ์f "%s\n" "${ar[$j:]}"
cocomac avatar
cn flag
ทำไมไม่ใช้ลูป `for` ล่ะ
Score:1
ธง hr

ไวยากรณ์คือ ${ar[@]:j}1. จาก การขยายพารามิเตอร์ ส่วนของ ผู้ชายทุบตี:

   ${พารามิเตอร์:ออฟเซ็ต:ความยาว}
   .
   .
   .
          หากพารามิเตอร์เป็นชื่ออาร์เรย์ที่จัดทำดัชนีซึ่งห้อยท้ายด้วย @ หรือ * แสดงว่า
          ผลลัพธ์คือความยาวของสมาชิกของอาร์เรย์ที่ขึ้นต้นด้วย ${paâ
          รามิเตอร์[ออฟเซ็ต]}. การชดเชยเชิงลบจะถูกนำมาเทียบกับหนึ่ง
          มากกว่าดัชนีสูงสุดของอาร์เรย์ที่ระบุ มันเป็น
          ข้อผิดพลาดในการขยายหากความยาวประเมินเป็นตัวเลขที่น้อยกว่าศูนย์

ดังนั้น

$ ar=("1" "2 3" "4" "5 6" "7 8" "9")

จากนั้น (จำไว้ว่าการทำดัชนีอาร์เรย์ของ bash นั้นเป็นแบบ 0):

$ ญ = 3; พิมพ์f '%s\n' "${ar[@]:j}"
5 6
7 8
9

หรือใช้สไตล์ C สำหรับลูป:

สำหรับ ((i=k;i<${#ar[@]};i++)); ทำ
  พิมพ์f '%s\n' "${ar[i]}"
เสร็จแล้ว

  1. หรือ ${ar[@]:$j} ถ้าคุณต้องการ - ที่สอง $ เป็นทางเลือก เนื่องจากดัชนีได้รับการประเมินในบริบทตัวเลขที่คล้ายกับ ((...))

โพสต์คำตอบ

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