shell script
13. การค้นหาที่ผิดในสคริปต์
Submitted by wd on Wed, 2007-11-21 12:52
Tags:
เราใช้พารามิเตอร์ -x ต่อท้ายคำสั่งในบรรทัดแรก
#!/bin/bash -x
จะมีผลว่าเชลล์จะแสดงทุกคำสั่งที่ถูกรันออกมาทางจอภาพ
จบแล้วจ้า
12.ตัวอย่างสคริปต์
Submitted by wd on Wed, 2007-11-21 12:51
Tags:
12.1 ตัวอย่างสคริปต์ดูรายชื่อไฟล์ในไดเรคทอรี่ย่อย
#!/bin/bash
function listdir {
local PAT="$1"
local ROOT="$2"
for i in *; do
if [ -d "$i" ]; then
local CUR="$ROOT/$i"
pushd "$i" &>/dev/null
listdir "$PAT" "$CUR"
popd &>/dev/null
fi
done
if [ ! -z "$( ls -d $PAT 2>/dev/null )" ]; then
echo "Directory: $ROOT"
ls -d $PAT 2>/dev/null
echo
fi
}
if [ -z "$1" ]; then
echo List file in PATTERN recursive into directories.
echo Usage: $0 "PATTERN"
exit
fi
PATTERN="$1"
echo "List $PATTERN"
listdir "$PATTERN" "."ให้ผลคล้ายคำสั่ง
$ find * -name PATTERN
11. ตัวดำเนินการ (operators) และคำสั่งน่าสนใจ
Submitted by wd on Wed, 2007-11-21 12:49
Tags:
11.1 ตัวดำเนินการเปรียบเทียบตัวอักษร (String comparison operators)
[ "$s1" = "$s2" ]หรือ[ "$s1" == "$s2" ]เป็นจริง ถ้า s1 เท่ากับ s2[ "$s1" != "$s2" ]เป็นจริง ถ้า s1 ไม่เท่ากับ s2[[ "$s1" < "$s2" ]]หรือ[ "$s1" \< "$s2" ]เป็นจริง ถ้า s1 น้อยกว่า s2[[ "$s1" > "$s2" ]]หรือ[ "$s1" \> "$s2" ]เป็นจริง ถ้า s1 มากกว่า s2[ -n "$s1" ]เป็นจริง ถ้า s1 มีค่าใด ๆ
10.เกร็ดอื่น ๆ
Submitted by wd on Wed, 2007-11-21 12:47
Tags:
10.1 การสั่งรันสคริปต์และคำสั่ง sourceการสั่งรันสคริปต์ในเชลล์ มีเกร็ดคือ
- ถ้าเราใส่ชื่อสคริปต์พร้อมพาธ เชลล์จะค้นหาสคริปต์จากชื่อเต็มที่เราใส่ เช่น
$ /bin/ls
- ถ้าเราใส่ชื่อสคริปต์โดด ๆ เชลล์จะค้นหาสคริปต์จากตัวแปร
$PATHโดยไม่สนใจไดเรคทอรี่ปัจจุบัน เช่น
$ mycode
หากค้นไม่พบ จะแสดงข้อผิดพลาด
9.การติดต่อผู้ใช้ (User Interfaces)
Submitted by wd on Wed, 2007-11-21 12:45
Tags:
9.1 ใช้คำสั่ง select ในการสร้างหัวข้อให้เลือก
#!/bin/bash
OPTIONS="Hello Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "Hello" ]; then
echo Hello World
else
clear
echo bad option
fi
doneตัวอย่างนี้จะสร้างหัวข้อ 1) และ 2) จากตัวแปร OPTIONS เพื่อมาให้เลือก โดยจะวนรอบถามไปเรื่อย ๆ จนกว่าจะพบคำสั่ง exit ให้ออกจากการวนรอบ
9.2 ใช้การตรวจสอบว่ามีการใส่ค่าพารามิเตอร์หรือไม่
#!/bin/bash if [ -z "$1" ]; then








Recent comments
1 week 2 days ago
1 week 3 days ago
2 weeks 3 days ago
7 weeks 6 days ago
7 weeks 6 days ago
9 weeks 5 days ago
9 weeks 5 days ago
12 weeks 6 days ago
15 weeks 3 days ago
15 weeks 4 days ago