xlogo
อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ
www.tanabutr.co.th/photobook
Submitted by poonlap on Mon, 2004-10-25 22:21.
เขียนเชลล์สคริปต์เพื่อใช้เป็นตัวอย่างในหนังสือที่กำลังเขียนอยู่ครับ.
#!/bin/sh
#
# File name: xlogo.sh
# Description: Show one xlogo window per second. If there are more than
# 5 windows (default), it will kill the first one and keep the number of
# window to 5.
#
# Location and color of xlogo are random.
#
if [ -z $1 ]
then
N=5
else
N=$1
fi
SHOWRGB=/usr/X11R6/bin/showrgb
XDPYINFO=/usr/X11R6/bin/xdpyinfo
XLOGO=/usr/X11R6/bin/xlogo
PGREP=/usr/bin/pgrep
KILL=/bin/kill
HEAD=/bin/head
width=`$XDPYINFO | awk '/dimensions/ {print $2}' | awk -F x '{print $1}'`
height=`$XDPYINFO | awk '/dimensions/ {print $2}' | awk -F x '{print $2}'`
colors=(`$SHOWRGB | sed -r 's/[[:digit:][:blank:]]+//' | grep -v ' '`)
NC=${#colors[*]}
while [ 1 ]
do
fg=${colors[$(($RANDOM % $NC))]}
bg=${colors[$(($RANDOM % $NC))]}
x=$(($RANDOM % $width))
y=$(($RANDOM % $height))
echo Foreground color: $fg
echo Background color: $bg
echo x position: $x
echo y position: $y
$XLOGO -fg $fg -bg $bg -geometry +$x+$y &
echo
if ((`$PGREP 'xlogo$' | wc -l` > $N ))
then
$KILL `pgrep 'xlogo$' | $HEAD -n 1`
fi
sleep 1
done
เป็นสคริปต์ดูเล่นๆเพลินๆ, จะแสดง xlogo หนึ่งหน้าต่างต่อวินาที. ถ้ามีหน้าต่างมากกว่า 5 หน้าต่าง (ค่าปริยาย) จะ kill หน้าแตกแรกที่อยู่ในคิว. แล้วรักษาจำนวนหน้าต่างให้มี 5 บาน. ตำแหน่งและสีฉากหลังฉากหน้าของโลโกจะสุ่มเอาครับ.
บันทึกเชลล์สคริปต์ข้างบนลงไฟล์, สมมติว่าชื่อ xlogo.sh แล้วสั่งคำสั่ง.
./xlogo.sh
ถ้าต้องการหน้าต่าง 10 บานสั่ง
./xlogo.sh 10