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

โลโก้

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

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

นิพจน์ไฟล์

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


ตาราง 27-1: ทดสอบนิพจน์ไฟล์


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

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

file1 -เอฟ file2 file1 และ file2 มีหมายเลขไอโหนดเหมือนกัน (สอง

ชื่อไฟล์อ้างอิงถึงไฟล์เดียวกันโดยฮาร์ดลิงก์)


ภาพ

file1 -nt file2 file1 ใหม่กว่า file2


ภาพ

file1 -อต file2 file1 เก่ากว่า file2


ภาพ

-b ไฟล์ ไฟล์ มีอยู่และเป็นไฟล์บล็อกพิเศษ (อุปกรณ์)


ภาพ

-c ไฟล์ ไฟล์ มีอยู่และเป็นไฟล์อักขระพิเศษ (อุปกรณ์)


ภาพ

-d ไฟล์ ไฟล์ มีอยู่และเป็นไดเร็กทอรี


ภาพ

-e ไฟล์ ไฟล์ ที่มีอยู่


ภาพ

-f ไฟล์ ไฟล์ มีอยู่และเป็นไฟล์ปกติ


ภาพ

-g ไฟล์ ไฟล์ มีอยู่และเป็น set-group-ID


ภาพ

-G ไฟล์ ไฟล์ มีอยู่และเป็นเจ้าของโดย ID กลุ่มที่มีประสิทธิภาพ


ภาพ

-k ไฟล์ ไฟล์ มีอยู่และมีชุด "เหนียว"


ภาพ


ภาพ

-L ไฟล์ ไฟล์ มีอยู่และเป็นลิงค์สัญลักษณ์


ภาพ

-O ไฟล์ ไฟล์ มีอยู่และเป็นเจ้าของโดย ID ผู้ใช้ที่มีประสิทธิภาพ


ภาพ

-p ไฟล์ ไฟล์ มีอยู่และเป็นไปป์ที่มีชื่อ


ภาพ

-r ไฟล์ ไฟล์ มีอยู่และสามารถอ่านได้ (มีสิทธิ์อ่านได้สำหรับผู้ใช้ที่มีประสิทธิภาพ)


ภาพ

-s ไฟล์ ไฟล์ มีอยู่และมีความยาวมากกว่าศูนย์


ภาพ

-S ไฟล์ ไฟล์ มีอยู่และเป็นซ็อกเก็ตเครือข่าย


ภาพ

-t fd fd เป็นตัวอธิบายไฟล์ที่ส่งไปยัง/จากเทอร์มินัล สามารถใช้เพื่อกำหนดว่าอินพุต/เอาต์พุต/ข้อผิดพลาดมาตรฐานกำลังถูกเปลี่ยนเส้นทางหรือไม่


ภาพ

-u ไฟล์ ไฟล์ มีอยู่และเป็น setuid


ภาพ

-w ไฟล์ ไฟล์ มีอยู่และสามารถเขียนได้ (มีสิทธิ์เขียนสำหรับผู้ใช้ที่มีประสิทธิภาพ)


ภาพ

-x ไฟล์ ไฟล์ มีอยู่และสามารถเรียกใช้งานได้ (มีสิทธิ์ดำเนินการ/ค้นหาสำหรับผู้ใช้ที่มีประสิทธิภาพ)


ภาพ


เรามีสคริปต์ที่แสดงนิพจน์ไฟล์บางส่วน:



#! / bin / ทุบตี


# ไฟล์ทดสอบ: ประเมินสถานะของไฟล์ FILE=~/.bashrc

ถ้า [ -e "$FILE" ]; แล้ว

ถ้า [ -f "$FILE" ]; แล้ว

echo "$FILE เป็นไฟล์ปกติ"

fi

ถ้า [ -d "$FILE" ]; แล้ว

echo "$FILE เป็นไดเร็กทอรี"

fi

ถ้า [ -r "$FILE" ]; แล้ว

echo "$FILE สามารถอ่านได้"

fi

ถ้า [ -w "$FILE" ]; แล้ว

echo "$FILE เขียนได้"

fi

ถ้า [ -x "$FILE" ]; แล้ว

echo "$FILE สามารถเรียกใช้งานได้/ค้นหาได้"

#! / bin / ทุบตี


# ไฟล์ทดสอบ: ประเมินสถานะของไฟล์ FILE=~/.bashrc

ถ้า [ -e "$FILE" ]; แล้ว

ถ้า [ -f "$FILE" ]; แล้ว

echo "$FILE เป็นไฟล์ปกติ"

fi

ถ้า [ -d "$FILE" ]; แล้ว

echo "$FILE เป็นไดเร็กทอรี"

fi

ถ้า [ -r "$FILE" ]; แล้ว

echo "$FILE สามารถอ่านได้"

fi

ถ้า [ -w "$FILE" ]; แล้ว

echo "$FILE เขียนได้"

fi

ถ้า [ -x "$FILE" ]; แล้ว

echo "$FILE สามารถเรียกใช้งานได้/ค้นหาได้"


fi อื่น

echo "$FILE ไม่มีอยู่" ออก 1

fi


ทางออก

fi อื่น

echo "$FILE ไม่มีอยู่" ออก 1

fi


ทางออก


สคริปต์ประเมินไฟล์ที่กำหนดให้กับค่าคงที่ ไฟล์ และแสดงผลเมื่อทำการประเมิน มีสองสิ่งที่น่าสนใจที่ควรทราบเกี่ยวกับสคริปต์นี้ ก่อนอื่นให้สังเกตว่าพารามิเตอร์ $ไฟล์ ถูกยกมาในนิพจน์ ไม่จำเป็นต้องกรอกนิพจน์ทางวากยสัมพันธ์ แต่เป็นการป้องกันพารามิเตอร์ที่ว่างเปล่า หากการขยายพารามิเตอร์ของ $ไฟล์ ได้ผลลัพธ์เป็นค่าว่าง มันจะทำให้เกิดข้อผิดพลาด (ตัวดำเนินการจะถูกตีความว่าเป็นสตริงที่ไม่ใช่ค่าว่างมากกว่าตัวดำเนินการ) การใช้เครื่องหมายคำพูดรอบๆ พารามิเตอร์ช่วยให้แน่ใจว่าตัวดำเนินการจะตามด้วยสตริงเสมอ แม้ว่าสตริงจะว่างเปล่าก็ตาม ประการที่สอง สังเกตการปรากฏตัวของ ทางออก คำสั่งใกล้ส่วนท้ายของสคริปต์ NS ทางออก คำสั่งยอมรับอาร์กิวเมนต์ทางเลือกเดียว ซึ่งจะกลายเป็นสถานะการออกของสคริปต์ เมื่อไม่มีการส่งผ่านอาร์กิวเมนต์ สถานะการออกจะปรับสถานะการออกของคำสั่งสุดท้ายที่ดำเนินการผิดไป โดยใช้ ทางออก วิธีนี้ทำให้สคริปต์สามารถระบุความล้มเหลวได้ if $ไฟล์ ขยายเป็นชื่อไฟล์ที่ไม่มีอยู่ NS ทางออก คำสั่งที่ปรากฏบนบรรทัดสุดท้ายของสคริปต์มีแบบแผน เมื่อสคริปต์ “หมดเวลาสิ้นสุด” (ถึงจุดสิ้นสุดของไฟล์) สคริปต์จะสิ้นสุดลงด้วยสถานะการออกของคำสั่งสุดท้ายที่ดำเนินการ

ในทำนองเดียวกัน ฟังก์ชันเชลล์สามารถส่งคืนสถานะการออกโดยใส่อาร์กิวเมนต์จำนวนเต็มไปที่ กลับ สั่งการ. หากเราต้องแปลงสคริปต์ด้านบนเป็นฟังก์ชันเชลล์เพื่อรวมไว้ในโปรแกรมที่ใหญ่กว่า เราสามารถแทนที่ ทางออก คำสั่งกับ กลับ คำสั่งและรับพฤติกรรมที่ต้องการ:



ไฟล์ทดสอบ () {


# ไฟล์ทดสอบ: ประเมินสถานะของไฟล์ FILE=~/.bashrc

ถ้า [ -e "$FILE" ]; แล้ว

ถ้า [ -f "$FILE" ]; แล้ว

echo "$FILE เป็นไฟล์ปกติ"

fi

ถ้า [ -d "$FILE" ]; แล้ว

echo "$FILE เป็นไดเร็กทอรี"

fi

ถ้า [ -r "$FILE" ]; แล้ว

ไฟล์ทดสอบ () {


# ไฟล์ทดสอบ: ประเมินสถานะของไฟล์ FILE=~/.bashrc

ถ้า [ -e "$FILE" ]; แล้ว

ถ้า [ -f "$FILE" ]; แล้ว

echo "$FILE เป็นไฟล์ปกติ"

fi

ถ้า [ -d "$FILE" ]; แล้ว

echo "$FILE เป็นไดเร็กทอรี"

fi

ถ้า [ -r "$FILE" ]; แล้ว


echo "$FILE สามารถอ่านได้"

fi

ถ้า [ -w "$FILE" ]; แล้ว

echo "$FILE เขียนได้"

fi

ถ้า [ -x "$FILE" ]; แล้ว

echo "$FILE สามารถเรียกใช้งานได้/ค้นหาได้"

fi

อื่น

echo "$FILE ไม่มีอยู่" คืนค่า 1

fi


}

echo "$FILE สามารถอ่านได้"

fi

ถ้า [ -w "$FILE" ]; แล้ว

echo "$FILE เขียนได้"

fi

ถ้า [ -x "$FILE" ]; แล้ว

echo "$FILE สามารถเรียกใช้งานได้/ค้นหาได้"

fi

อื่น

echo "$FILE ไม่มีอยู่" คืนค่า 1

fi


}


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