Android

ทุบตีถ้า .. คำสั่งอื่น

A day with Scandale - Harmonie Collection - Spring / Summer 2013

A day with Scandale - Harmonie Collection - Spring / Summer 2013

สารบัญ:

Anonim

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

ในบทช่วยสอนนี้เราจะแนะนำคุณเกี่ยวกับพื้นฐานของ Bash if คำสั่งและแสดงวิธีใช้มันในเชลล์สคริปต์ของคุณ

if คำชี้แจง

ทุบตี if เงื่อนไขสามารถมีรูปแบบที่แตกต่างกัน คำสั่ง if พื้นฐานที่สุดจะใช้แบบฟอร์มต่อไปนี้:

if TEST-COMMAND then STATEMENTS fi

คำสั่ง if เริ่มต้นด้วยคีย์เวิร์ด if ตามด้วยนิพจน์เงื่อนไขและคีย์เวิร์ด คำสั่งนั้นลงท้ายด้วยคำสำคัญ fi

หาก TEST-COMMAND ประเมินค่าเป็น True STATEMENTS จะถูกดำเนินการ หาก TEST-COMMAND ส่งกลับค่า False จะไม่มีอะไรเกิดขึ้น STATEMENTS จะถูกละเว้น

โดยทั่วไปเป็นแนวปฏิบัติที่ดีเสมอในการเยื้องรหัสของคุณและการแยกบล็อคโค้ดด้วยบรรทัดว่าง คนส่วนใหญ่เลือกที่จะใช้การเว้นวรรค 4 หรือ 2 ช่องว่าง การเยื้องและบรรทัดว่างทำให้โค้ดของคุณอ่านและจัดการได้ง่ายขึ้น

ลองดูตัวอย่างสคริปต์ต่อไปนี้ที่ตรวจสอบว่าตัวเลขที่กำหนดมีค่ามากกว่า 10

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

บันทึกรหัสในไฟล์และเรียกใช้จากบรรทัดคำสั่ง:

bash test.sh

สคริปต์จะแจ้งให้คุณป้อนหมายเลข หากตัวอย่างเช่นคุณป้อน 15 คำสั่ง test จะประเมิน true เพราะ 15 มากกว่า 10 และคำสั่ง echo ภายในส่วนคำสั่ง then จะถูกดำเนินการ

The variable is greater than 10.

if..else แถลงการณ์

คำสั่ง Bash if..else ใช้แบบฟอร์มต่อไปนี้:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

หาก TEST-COMMAND ประเมินค่าเป็น True แล้ว STATEMENTS1 จะถูกเรียกใช้งาน มิฉะนั้นหาก TEST-COMMAND ส่งคืนค่า False STATEMENTS2 จะถูกเรียกใช้งาน คุณสามารถมีเพียงประโยคเดียวในคำสั่ง

ลองเพิ่มส่วนคำสั่ง else ในสคริปต์ตัวอย่างก่อนหน้านี้:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else แถลงการณ์

Bash if..elif..else ใช้แบบฟอร์มต่อไปนี้:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

หาก TEST-COMMAND1 ประเมินเป็น True แล้ว STATEMENTS1 จะถูกเรียกใช้งาน หาก TEST-COMMAND2 ค่าเป็น True จะมีการเรียกใช้ STATEMENTS2 หากไม่มีคำสั่งทดสอบที่ประเมินเป็น True จะดำเนินการ STATEMENTS2

คุณสามารถมีอย่างน้อยหนึ่งประโยคในคำสั่ง ส่วนคำสั่ง else เป็นตัวเลือก

เงื่อนไขจะถูกประเมินตามลำดับ เมื่อเงื่อนไขส่งคืน True เงื่อนไขที่เหลือจะไม่ถูกดำเนินการและการควบคุมโปรแกรมจะย้ายไปยังจุดสิ้นสุดของข้อความสั่ง if

ลองเพิ่ม elif clause ไปที่สคริปต์ก่อนหน้านี้:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

ซ้อนกัน if งบ

Bash อนุญาตให้คุณซ้อนคำสั่งใน if statement คุณสามารถวางหลายคำสั่ง if ในอีกคำสั่ง if

สคริปต์ต่อไปนี้จะแจ้งให้คุณป้อนหมายเลขสามตัวและจะพิมพ์หมายเลขที่ใหญ่ที่สุดในบรรดาสามหมายเลข

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

นี่คือลักษณะของเอาต์พุต:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. แทนที่จะใช้คำสั่งซ้อน if คำสั่งมักจะมีประสิทธิภาพมากกว่าในการใช้คำสั่ง case

หลายเงื่อนไข

ตัวดำเนินการเชิงตรรกะ OR และ AND อนุญาตให้คุณใช้หลายเงื่อนไขในคำสั่ง if

นี่เป็นอีกเวอร์ชั่นของสคริปต์ที่จะพิมพ์ตัวเลขที่ใหญ่ที่สุดในบรรดาสามตัวเลข ในรุ่นนี้แทนที่จะเป็นคำสั่งที่ซ้อนกันเราจะใช้ตัวดำเนินการตรรกะ AND ( && )

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

ผู้ประกอบการทดสอบ

ใน Bash คำสั่ง test ใช้หนึ่งในรูปแบบไวยากรณ์ต่อไปนี้:

test EXPRESSION]

ในการปฏิเสธนิพจน์ทดสอบให้ใช้ตัวดำเนินการ NOT ( ! ) แบบโลจิคัล เมื่อเปรียบเทียบสตริงจะใช้เครื่องหมายคำพูดเดี่ยวหรือคู่เสมอเพื่อหลีกเลี่ยงปัญหาการแยกคำหรือกลมกลืน

ด้านล่างนี้คือโอเปอเรเตอร์ที่ใช้บ่อยที่สุด:

  • -n VAR - จริงถ้าความยาวของ VAR มากกว่าศูนย์ -z VAR - จริงถ้า VAR ว่างเปล่า STRING1 = STRING2 - จริง [STRING1 และ STRING2 เท่ากัน STRING1 != STRING2 - True STRING1 และ STRING2 ไม่เท่ากัน INTEGER1 -eq INTEGER2 - True INTEGER1 และ INTEGER2 เท่ากัน INTEGER1 -gt INTEGER2 - True INTEGER1 มากกว่า INTEGER2 INTEGER1 -lt INTEGER2 - True INTEGER1 น้อยกว่า INTEGER2 INTEGER1 -ge INTEGER2 - True INTEGER1 เท่ากับหรือมากกว่า INTEGER2 INTEGER1 -le INTEGER2 - True INTEGER1 มีค่าเท่ากับหรือน้อยกว่า INTEGER2 -h FILE - จริงถ้าไฟล์นั้นมีอยู่และเป็นลิงก์สัญลักษณ์ -r FILE - จริงถ้าไฟล์นั้นมีอยู่และสามารถอ่านได้ -w FILE - จริงถ้าไฟล์นั้นมีอยู่และเขียนได้ -x FILE - จริงถ้าไฟล์นั้นมีอยู่และสามารถใช้งานได้ -d FILE - จริงถ้าไฟล์นั้นมีอยู่และเป็นไดเรกทอรี -e FILE - จริงถ้าไฟล์นั้นมีอยู่และเป็นไฟล์โดยไม่คำนึงถึงประเภท (โหนด, ไดเรกทอรี, ซ็อกเก็ต ฯลฯ) -f FILE - จริงถ้าไฟล์นั้นมีอยู่และเป็นไฟล์ปกติ (ไม่ใช่ไดเรกทอรีหรืออุปกรณ์)

ข้อสรุป

คำสั่ง if , if..else และ if..elif..else อนุญาตให้คุณควบคุมโฟลว์ของการดำเนินการของสคริปต์ Bash โดยการประเมินเงื่อนไขที่กำหนด

bash terminal