[問題]有關UNIX shell script 程式
以下是UNIX shell script的程式(用bourne shell寫的),現在我想把它
轉成c shell script ,要怎麼轉換呢?
P.S 這是一個可追蹤使用者登入登出的shell script
#! /bin/sh
pause=20
loopCount=10000
error=0
for arg in $*
do
case $arg in
-t*)
pause=`awk 'END { print substr(val,3,3) }' val=$arg < /
dev/null`
#echo $pause
;;
-n*)
lineCount=`awk 'END { print substr(val,3,3) }' val=$arg
/dev/null`
#echo $lineCount
;;
*)
user=$arg
#echo $user
;;
esac
done
if [ ! "$user" ]
then
error=1
fi
if [ $error -eq 1 ]
then
cat << ENDOFERROR
usage: track [-n#] [-t#] userId
ENDOFERROR
exit
fi
trap './track.cleanup $$; exit 1' 2
#trap 'exitCode=1; exit' 2 3
> .track.old.$$
count=0
while [ $count -lt $loopCount ]
do
who | grep $user | sort > .track.new.$$
diff .track.new.$$ .track.old.$$ | \
sed -f track.sed > .track.report.$$
# cat .track.new.$$
# cat .track.old.$$
if [ -s .track.report.$$ ]
then
echo track report for ${user}:
cat .track.report.$$
fi
mv .track.new.$$ .track.old.$$
# echo $$
# echo $pause
# echo $count
# sleep $pause
count=`expr $count + 1`
done
exitCode=0
程式裡有用到另外兩個程式
track.sed
/^[0-9].*/d
/^---/d
s/^</login/
s/^>/logout/
和
track.cleanup
echo stop tracking
rm -f ./.track.old.$1 ./.track.new.$1 ./.track.report.$1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.244.131.25
→
11/28 20:10, , 1F
11/28 20:10, 1F
→
11/28 21:17, , 2F
11/28 21:17, 2F
推
11/29 00:14, , 3F
11/29 00:14, 3F
推
11/29 00:14, , 4F
11/29 00:14, 4F
推
11/29 01:08, , 5F
11/29 01:08, 5F