b11.

sh
#!/bin/bash

while [ "$1" != "" ]
ทาํ จนกวา่ จะเจอชอ่ งวา่ ง
do
echo $1
แสดงคาํ สั ง่ ที่รับมาจากดา้ นบน
shift
ขา้ มไปตาํ แหน่งถัดไป พร้อมเวน
้ บรรทัด
done

input: aa bb cc
output:
aa
bb
cc
…………………………………………………………………………………………………………………………
…………………...
B12.sh
#!/bin/bash

num=3 เซต num=3
while [ "$num" -lt 10 ] (ทาํ ไปเรื่ อยๆถา้ numน้อยกวา่ 10)
do
echo '$num'" is $num" แสดงคา่ num ออกมา
num=`expr $num + 1` บวกคา่ num ทีละ 1
done

…………………………………………………………………………………………………………………………
…………………...
B13.sh
#!/bin/bash
num=​$1 (เซตคา่ numเป็ น1)
while [ "$num" -lt ​10 ] (ทาํ ไปเรื่ อยๆถา้ numน้อยกวา่ 10)
do
echo '$num'" is $num" (แสดงคา่ นําออกมาทางหน้าจอ[ เชน
่ 2 is num])
num=`expr $num + ​1​` (บวกคา่ num ไป 1 )
done
…………………………………………………………………………………………………………………………
…………………...
b14.sh
#!/bin/bash
num=$RANDOM
echo "Put your favorite number: "
while true
do
echo "Put --> 0-32767"
read x
if [ $x -gt $num ]
then
echo "less than your number!"
elif [ $x -lt $num ]
then
echo "more than your number"
else
echo "OK!"
break
fi
done

เป็ นโปแกรมที่จะการสุม ่ คา่ ระหวา่ ง 0​ถึง32767​ และจะรับคา่ จากคีบอร์ดเรื่ อยๆ
หากคา่ ที่ไดรับมามีคา่ น้อยกวา่ คา่ สุม่ จะแสดงคาํ วา่ “more than your number”
ออกมาทางหน้าจอ แตถ ่ า้ มีคา่ มากกวา่ จะแสดงคาํ วา่ “less than your num”​ข้ึนมาแทน
โดยจะรับเรื่ อยๆจนวา่ จะมีคา่ เทา่ กับ แลว้ จึงแสดงคาํ วา่ “OK!” แ​ ลว
้ จึงจบการทาํ งาน
…………………………………………………………………………………………………………………………
…………………...
b15.sh
#!/bin/bash
i=1 //สร้างตัวแปร i
แลว้ ให้คา่ เทา่ กับ 1
while [ "$i" -le 100 ] //วนลูปโดยจะหยุดเมื่อ i
มากกวา่ 100
do
touch temp${i}.txt //สร้างไฟล์ .txt ชื่อ
tempตามดว้ ยคา่ i
i=`expr $i + 1` ่ คา่ i ทีละหนึ่ ง
//เพิม
Done
…………………………………………………………………………………………………………………………
…………………...

b16.sh
#!/bin/bash
i=1 สร้างตัวแปร i = 1
while [ "$i" -le 100 ] while(i <= 100)
do
if [ "$i" -lt 10 ] if(i < 10)
then
num=00${i} num = 00i เ​ ชน
่ I = 1 num = 001
elif [ "$i" -lt 100 ] else if(i >= 100)
then
num=0${i} num = 0i เ​ ชน
่ I = 12 num = 012
else
num=${i} num = i
fi ปิ ดif

mv temp${i}.txt temp${num}.txt เปลี่ยนชื่อไฟล์ temp${i}.txt​ เป็ น temp${num}.txt
i=`expr $i + 1` i += 1
done
…………………………………………………………………………………………………………………………
…………………...
b17.sh
#!/bin/bash

while [ "$1" != "" ]
ทาํ จนกวา่ จะเจอชอ่ งวา่ ง
do
name=`echo $1 | cut -f1 -d'.'`
้ ความที่รับมาจนถึงชอ่ งวา่ ง
ตัดขอ
echo $1, $name
้ ความที่ตัดแลว้
แสดงขอ
shift
ขา้ มไปตาํ แหน่งถัดไป พ
​ ร้อมเวน
้ บรรทัด
done

input: aa bb cc
output:
aa, aa
bb, bb
cc, cc
…………………………………………………………………………………………………………………………
…………………...

B18.sh
#!/bin/bash
while [ "$1" != "" ] วนลูปจนกวา่ จะเจอชอ่ งวา่ ง
do
name=`echo $1 | cut -f1 -d'.'` สตริ ง name
fname=${name}_e.html สตริ ง fname จากไฟล html
echo $1, $fname แสดงผลมาออกมา
Shift เลือกถัดไป
done

…………………………………………………………………………………………………………………………
…………………...
b19.sh
#!/bin/bash
while [ "$1" != "" ] (รันคาํ สั ง่ ไปเรื่ อยๆจนกวา่ จะเจอชอ่ งวา่ ง)
do
name=`echo $1 | cut -f1 -d'.'` (เซตตัวแปรnameเป็ นคาํ สั ง่ สว่ นดา้ นหน้าจุด)
fname=${name}_e.html (เซตfname เป็ นname.html)
cat $1 > $fname (เอาขอ ้ มูลคาํ สั ง่ ไปยัดในfname)
mv $fname ~/public_html (ยา้ ย fname ไปที่ public_html)
chmod 604 ~/public_html/$fname ้ า่ ให้อา่ นและแกไ้ ขfnameได)้
(ตังค
shift
Done
…………………………………………………………………………………………………………………………
…………………...
b20.sh
#!/bin/bash

i=1
while [ "$i" -le 100 ]
do
echo "***** ${i} *****"
if [ -e temp0${i}.txt ]
then
echo "temp0${i}.txt already exists !"
fi
i=`expr $i + 1`
done

โปรแกรมจะทาํ การประกาศตัวแปร I ท ​ ่ีมีคา่ 1​ข้ึนมา แลว้ จะทาํ การลูปไปเมื่อ I ​มีคา่ น้อยกวา่ 100
ภายในลูป จะทาํ การแสดงคาํ วา่ “**** (​คา่ ของ I )****” แ​ ลว้ ทาํ การตรวจสอบวา่ มีไฟลท ์ ่ีช่ือ temp0(​คา่ ของงi).txt
่ รื อเปลา่ หากมี จะแสดงคาํ วา่ “temp0(​คา่ ของi).txt already exists ”​ แลว้ จึงทาํ การเพิม
อยูห ่ คา่ I ​ข้ึน1
แลว้ จึงกลับขึ้นไปเชคเงื่อนไขของลูปใหม่
…………………………………………………………………………………………………………………………
…………………...
b21.sh
#!/bin/bash
i=1 //สร้างตัวแปร i
แลว้ ให้คา่ เทา่ กับ 1
while [ "$i" -le 100 ] //วนลูปโดยจะหยุดเมื่อ i
มากกวา่ 100
do
echo "***** ${i} *****" //พิมพข์ อ
้ ความ *****คา่
i*****
if [ ! -e temp${i}.txt ] //ถา้ ไมม
่ ีไฟล์ tmpคา่ i.txt
then
touch tmp${i}.txt //สร้างไฟล์ tmpคา่ i.txt
fi
i=`expr $i + 5` ่ คา่ i ทีละห้า
//เพิม
done
…………………………………………………………………………………………………………………………
…………………...
b22.sh
#!/bin/bash

่ ปเรื่ อยๆจนไฟลส์ ุดทา้ ย
for file in tmp1.txt tmp4.txt tmp6.txt for ​ลูปทาํ ไลไ
do
echo "*** ${file} ***" ้ ความ ***ชื่อไฟล*์ **
พิมพข์ อ
done
Output:
*** tmp1.txt ***
*** tmp4.txt ***
*** tmp6.txt ***
…………………………………………………………………………………………………………………………
…………………...
b23.sh
#!/bin/bash

for file in `ls tmp*.txt`
์ ่ีมีช่ือขึ้นตน
ทาํ เฉพาะไฟลท ้ ดว้ ยtmp​ ประเภทtxt
do
echo "*** ${file} ***" แสดงชื่อไฟล์
done

…………………………………………………………………………………………………………………………
…………………...
B24.sh
#!/bin/bash

for file in $(ls tmp*.txt) เปิ ดไฟล์ ขึ้นตน
้ ดว้ ย tmp
do
echo "*** ${file} ***" แสดงผลออกมา
done

…………………………………………………………………………………………………………………………
…………………...
b25.sh
#!/bin/bash

for file in `ls tmp*.txt` (ไลท
่ าํ ไปทุกไฟล.์ txt)
do
์ ่ีอยูใ่ นtmpและเป็ น.txt)
i=`echo $file | sed -e "s/tmp//" | sed -e "s/.txt//"` (เลือกแคไ่ ฟลท
if [ "$i" -lt 10 ] (ถา้ iน้อยกวา่ 10)
then
num=00${i} (num=00(คา่ i))
elif [ "$i" -lt 100 ] (ถา้ iน้อยกวา่ 100)
then
num=0${i} (num=0(คา่ i))
else
num=${i} (num=i)
fi

mv tmp${i}.txt tmp${num}.txt (เปลี่ยนชื่อไฟลจ์ ากiเป็ น num)
Done
…………………………………………………………………………………………………………………………
…………………...
b26.sh
#!/bin/bash

for file in `ls tmp*.txt`
do
i=`echo $file | sed -e "s/[a-z.]//g"`
if [ "$i" -lt ​10 ]
then
num=​00$​{i}
elif [ "$i" -lt ​100 ]
then
num=​0$​{i}
else
num=${i}
fi
mv tmp${i}.txt tmp${num}.txt
done
โปรแกรมจะทาํ การลูปตามจาํ นวนไฟล์ ตามรู ปแบบ ”tmp*.txt”
แลว้ จะทาํ การเปลี่ยนชื่อไฟลโ์ ดยหายตัวเลขหลัง tmp ​มีคา่ น้อยกวา่ 10 ​จะทาํ การเติมเลข0​ไปสองตัวหน้าตัวเลขนัน ้

หากมีคา่ มากกวา่ หรื อเทา่ กับ 10 ​และ น้อยกวา่ 100 จ​ ะเพิม 0 แ
​ ค่ 1 ​ตัวแทน และหากมีคา่ มากกวา่ หรื อเทา่ กับ 100
จะไมท า
่ ํ การเพิ ่
ม เลข 0 ​ แตอ ยา
่ ่ งใด

…………………………………………………………………………………………………………………………
…………………...

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.