#!/bin/bash
#sh1.sh
name="admin"
Npass="123"
loops=1
filename="dlxxlog.log"
logins(){
echo "Your name:"
read user
echo "Your Password:"
read pass
}
logins
#!用户信息导入日志
servermessage(){
`echo "$LOGNAME">>$filename`
`echo $HOME>>$filename`
` who |grep $LOGNAME |cut -d ' ' -f 12 >>$filename`
}
longen(){
echo "Welcome to this System!/n"
#!判断在线人数,消除冗余 》》最后用两遍cut的原因是当只有一个用户登录系统时候和多个不同用户登录系统时所处理的用户个数存储时,单个用户存储在1列,而多用的时候存储在2列
echo "`who|cut -d ' ' -f 1 >temp`"
echo "now at this System man is :"`uniq temp >temps;wc temps>temp;cat temp|cut -d ' ' -f 1;cat temp|cut -d ' ' -f 2`
#!睡眠
sleep 3
#!显示用户信息并进行存储
echo "username is :"$LOGNAME
echo "user-dir is:"$HOME
echo "user-login-time is "` who |grep $LOGNAME |cut -d ' ' -f 12` #!12的原因是时间从12列开始
if [ `test -s $filename` ]; #!测试是否存在日志文件
then
echo "$filename file is at, so go on"
servermessage
else
echo "$filename is no at ,so new file "
`touch $filename`
servermessage
fi
#!主目录下建立一个目录,键盘读入目录名字并进行判断,并移动dlxxlog.log
echo "Please input new DIR name:"
read dir_name
echo `find /home/$LOGNAME/ -name $dir_name`
if [ ` test -s temp ` ];
then
echo "The DIR is ating ,go on cp $filename"
else
echo "The DIR is not at ,so New file"
echo `mkdir $HOME/$dir_name`
fi
`cp $filename $HOME/$dir_name;rm temp*`
echo "cp is over"
}
while [ $loops -lt 3 ]
do
if [ $user = $name -a $pass = $Npass ];
then
longen
loops=4
else
echo "You name / password is rong!"
logins
fi
loops=`expr $loops + 1 `
done
if [ $loops -eq 3 ];
then
echo "用户名密码错误输入超过3次"
fi
#!cat a.txt|cut -d ' ' -f 1 >c
Shell 简单编程
最新推荐文章于 2024-09-09 12:51:31 发布