Golfreeze.packetlove.com: Life style of Golfreeze Canon400D Family kammtan.com Jazz Freebsd Unix Linux System Admin guitar Music
All about unix linux freebsd and FAQ for Packetlove.com Web hosting , Mail hosting , VoIP + IP PBX server => command , shell script ,tool , crontab => Topic started by: golfreeze on มิถุนายน 05, 2013, 07:59:40 am
-
ปกติแล้ว เราสามารถใช้งาน คำสั่ง for ได้ สำหรับการเขียน shell programming นะครับ
เช่นต้องการให้ทำคำสั่ง 1 แล้ววนการทำงานอยู่ 5 รอบ ก็
#for i in {1..5}; do _COMMAND_; done
เช่นการทำงานตามจำนวนของ for loop เมื่อถึงค่าที่กำหนดไว้ ก็หลุดจาก for loop
#for((i=1;i<=10;i+=2)); do echo "Welcome $i times"; done
หรือจะให้ทำงาน แบบว่า check IO ของเครื่องโดย bonnie++ แล้วเก็บผลมา 5 ครั้งก็ จัดได้โดย
#for((i=1;i<=10;i+=2)); do bonnie++ -d /home/golf -s 4G -u root >> result.txt ; done
หรือการ echo ค่าออกมาตามจำนวนไฟล์
for i in *; do echo $i; done
for i in *; do ls -lah $i; done
เช่นการ backup file ใน /etc/ แล้วทำการ copy ไปที่ /backup
for i in /etc/*.conf; do cp $i /backup; done
-
##While##
ให้เขียนไฟล์ทุกไฟล์ด้วย".jpg" ใน folder "img"
#for f in *; do if [ "${f#*.}" == 'jpg' ]; then echo $f; fi; done
เขียนแล้วลบ ทุกไฟล์ที่มี .jpg
#for f in *; do if [ "${f#*.}" == 'jpg' ]; then rm -r $f; fi; done
จะให้แสดงข้อมูลไฟล์ แล้วหยุด 2 วินาที จากนั้นก็ แสดงใหม่
#while true; do ls -lah ; sleep 2 ; done
สามารถใช้ : แทน true ได้ตามนี้ครับ
#while :; do foo; sleep 2; done