เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

นิพจน์สตริง

นิพจน์ต่อไปนี้ใช้เพื่อประเมินสตริง:


ตาราง 27-2: ทดสอบนิพจน์สตริง


นิพจน์เป็นจริงถ้า...

นิพจน์เป็นจริงถ้า...

เชือก เชือก ไม่เป็นโมฆะ


ภาพ

-n เชือก ความยาวของ เชือก มีค่ามากกว่าศูนย์


ภาพ

ภาพ

-z เชือก ความยาวของ เชือก เป็นศูนย์

string1 = สตริง2 สตริง1 == สตริง2

string1 และ string2 เท่ากัน อาจใช้เครื่องหมายเท่ากับเดี่ยวหรือสองเท่า แต่ควรใช้เครื่องหมายเท่ากับสองเท่า


ภาพ

ภาพ

ภาพ

ภาพ

string1 != string2 string1 และ string2 ไม่เท่ากัน string1 > string2 string1 เรียงลำดับตาม string2. string1 < string2 string1 เรียงลำดับก่อน string2.


ภาพ

การเตือน: > และ < ตัวดำเนินการนิพจน์ต้องยกมา (หรือหลีกด้วยแบ็กสแลช) เมื่อใช้กับ ทดสอบ. หากไม่เป็นเช่นนั้น เชลล์จะตีความเชลล์ว่าเป็นโอเปอเรเตอร์การเปลี่ยนเส้นทาง โดยอาจส่งผลเสียหายได้ พึงทราบด้วยว่าในขณะที่ ทุบตี เอกสารระบุว่าลำดับการจัดเรียงเป็นไปตามลำดับการจัดเรียงของสถานที่ปัจจุบัน แต่ไม่เป็นเช่นนั้น ลำดับ ASCII (POSIX) ใช้ในเวอร์ชันของ ทุบตี มากถึงและรวมถึง 4.0


ภาพ


นี่คือสคริปต์ที่รวมนิพจน์สตริง:



#! / bin / ทุบตี


# สตริงทดสอบ: ประเมินค่าของสตริง ANSWER=maybe

ถ้า [ -z "$ANSWER" ]; แล้ว

ก้อง "ไม่มีคำตอบ" >&2 ทางออก 1

fi


ถ้า [ "$ANSWER" = "ใช่" ]; แล้วก้อง "คำตอบคือใช่"

elif [ "$ANSWER" = "ไม่" ]; แล้วก้อง "คำตอบคือ ไม่"

elif [ "$ANSWER" = "อาจจะ" ]; แล้วก้อง "คำตอบคืออาจจะ"

อื่น

echo "คำตอบคือไม่ทราบ"

fi

#! / bin / ทุบตี


# สตริงทดสอบ: ประเมินค่าของสตริง ANSWER=maybe

ถ้า [ -z "$ANSWER" ]; แล้ว

ก้อง "ไม่มีคำตอบ" >&2 ทางออก 1

fi


ถ้า [ "$ANSWER" = "ใช่" ]; แล้วก้อง "คำตอบคือใช่"

elif [ "$ANSWER" = "ไม่" ]; แล้วก้อง "คำตอบคือ ไม่"

elif [ "$ANSWER" = "อาจจะ" ]; แล้วก้อง "คำตอบคืออาจจะ"

อื่น

echo "คำตอบคือไม่ทราบ"

fi


ในสคริปต์นี้ เราประเมินค่าคงที่ ตอบ. ก่อนอื่นเราพิจารณาว่าสตริงนั้นว่างเปล่าหรือไม่ หากเป็นเช่นนั้น เราจะยุติสคริปต์และตั้งค่าสถานะการออกเป็นสถานะเดียว สังเกตการเปลี่ยนเส้นทางที่ใช้กับคำสั่ง echo สิ่งนี้เปลี่ยนเส้นทางข้อความแสดงข้อผิดพลาด "ไม่มีคำตอบ" ข้อผิดพลาดมาตรฐาน ซึ่งเป็นสิ่งที่เหมาะสมที่ต้องทำกับข้อความแสดงข้อผิดพลาด หากสตริงไม่ว่างเปล่า เราจะประเมินค่าของสตริงเพื่อดูว่ามีค่าเท่ากับ "ใช่" "ไม่ใช่" หรือ "อาจจะ" เราทำสิ่งนี้โดยใช้ elifซึ่งย่อมาจาก "else if" โดยใช้ elifเราสามารถสร้างการทดสอบเชิงตรรกะที่ซับซ้อนยิ่งขึ้นได้


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: