Thursday, October 13, 2011

unix tip shell script if statement double bracket [[ ]]

พอดีได้เขียน shell script แล้วเห็นบางสิ่งที่แปลกตาไปนั่นคือ double bracket คือมีวงเล็บก้ามปูแบบคู่ แบบนี้ [[ ]] ซึ่งปกติแล้วจะเขียนแบบนี้ [ ] ยกตัวอย่างประโยค if statement ที่ใช้ปกติ
if [ $value -lt 1 ]; then echo "increase value"; fi
จากตัวอย่างเป็น if statement ที่ตรวจสอบเงื่อนไขว่า หากค่า $value น้อยกว่า 1 ให้แสดงผล increase value แล้วที่นี้ทำไมต้องมี double bracket ล่ะ เมื่อเกิดข้อสงสัยจึงไปค้นหาข้อมูล และเจอ เว็บนี้ บอกว่า double bracket นี้เป็นเวอร์ชั่นใหม่ ซึ่งนอกจากจะมีคุณสมบัติหลัก ๆ เหมือนเดิมทุกประการแล้วยังเพิ่มความสามารถเจ๋ง ๆ เข้ามาอีกด้วย ซึ่งความสามารถเจ๋ง ๆ ที่เพิ่มเข้ามานี้มีประมาณนี้
- สามารถใช้ * ในการตรวจสอบ string ได้ เช่นต้องการตรวจสอบว่าภายในข้อความของ string $value มีคำว่า foo อยู่รึป่าว สามารถใช้ if statement ดังนี้
if [[ $value == *foo* ]]; then
echo "This string have foo"
fi
- นอกจากนั้นยังใช้สำหรับตัวอักษรตัวเล็ก และตัวใหญ่ได้ เช่นต้องการตรวจสอบ ทั้งคำว่า Foo and foo จะได้ if statement ดังนี้
if [[ $value == [fF]foo ]]; then
echo "This string have foo or Foo"
fi
สำหรับตัวอย่างอื่น ๆ สามารถดูเพิ่มเติมจาก เว็บนี้ ครับ

No comments:

Post a Comment