Score:0

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

ธง tn

Arr=(exv ผิดพลาด tmp)
Arr_1=(7 5 5)

ในนี้ฉันต้องการรับข้อมูลจากผู้ใช้เพื่อให้สามารถตรวจสอบค่า arr และ arr_1 จากอาร์เรย์ได้ และหากไม่ตรงกับที่ผู้ใช้ป้อนก็จะเกิดข้อผิดพลาด ฉันมากับ

#!/bin/bash
เลือก a ใน arr[@]; ทำ
ถ้า [[ "arr[@]" == *"a"* ]]; แล้ว
เสียงก้อง ""
หยุดพัก
อื่น 
เสียงก้อง ""
ไฟ
เสร็จแล้ว

มีวิธีอื่นใดที่ฉันสามารถบรรลุผลลัพธ์เดียวกันได้หรือไม่?

Liso avatar
sd flag
แค่อยากรู้อยากเห็น ถ้าคุณต้องการรับข้อมูล คุณไม่ควรใช้ `read` แทน `select` หรือไม่
Fox Chasin avatar
tn flag
ฉันได้กำหนดอินพุตไว้แล้ว ฉันแค่ต้องการจับคู่ที่ฉันป้อนในเทอร์มินัลกับอันที่กำหนดไว้
hr flag
เป็นการยากที่จะเดาว่า "ผลลัพธ์เดียวกัน" หมายถึงอะไร เนื่องจากคุณไม่ได้ระบุสิ่งใดที่ใช้การได้
Liso avatar
sd flag
@FoxChasin "เข้าสู่เทอร์มินัล" ฉันหมายถึงคุณรับข้อมูลของผู้ใช้ใช่ไหม อย่างที่ฉันเข้าใจ คุณต้องการ: 1. ผู้ใช้พิมพ์ไปที่เทอร์มินัล 2. ส่งคืนความสำเร็จหากพบในอาร์เรย์ 3. ส่งคืนข้อผิดพลาดหากไม่พบในอาร์เรย์ ฉันถูกไหม ?
Fox Chasin avatar
tn flag
@Liso ใช่คุณพูดถูก
Fox Chasin avatar
tn flag
ฉันใช้ select เพื่อทำสิ่งนี้ มีวิธีอื่น ๆ ?

โพสต์คำตอบ

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