Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令。在这里与大家分享下几个经典的脚本。

指导老师:双星   冯德勇老师  曾勇老师  葛老师

1.模拟登陆shell

=================================================================

i=0                                                         

登陆次数的控制                                                  

login_shell(){                                                        

 引入c语言函数概念

echo -n -e "login\n"

read name                                                              

人机交互

echo -n -e "password\n"

read passwd

if [  $name= "root" -a $passwd ] ;then               

  判断

            echo "welcome to Centos!"

else

            echo  "please train again!"

            (( i=$i+1 ))

            if [ $i -eq 3 ];then

                        exit 1

            fi

            login_shell

fi

}

main(){                                                                     

 主函数调用

login_shell

}

main

==================================================================

语句释义:

echo 

          -n  换行且光标移至行首

           -e  处理特殊字符

判断语句

if [  判断条件 ];then

                成功之后执行的语句

else

                不成功执行的语句

fi 

*********************************************************************************************

2.点歌程序

================================================================

首先创建song这个目录 

a=song                                                        

名单存放地方

line=`cat  /example/song | grep wc -l `      

名单里的人数

if [  $line -eq 0 ];then                      

文件处理

        cp  file  $a

         rm -rf file

         exit 0

fi  

echo " 还有$line 个同学没唱歌,明天唱歌的是:"

ran=$((  $RANDOM%$line+1  ))                 

产生随机数

sed -n "$ran p"  $a

sed -n "$ran p " $a >>file

sed  -i  "$ran d" $a

===================================================================

************************************************************************************************************

3.10的阶层和1到100的和

===================================================================

sum=0

for i in `seq 10`

do

            let sum*=i

done

echo $sum

k=0

for j i `seq 100`

do

            let k+=j

done

echo $k

=======================================================================

echo `seq  10`    就是打印1 2 3 4 5 6 7 8 9 10

**********************************************************************************************************

4.打印出两个不同文件内

=======================================================================

在此之前要创建file1 和file2

grep  -xf file1  file2  -v  >file3

========================================================================

-f  指定以文件为对象比较

-v 取反

*************************************************************************************************************

5.在a="01234567"中随机取两个数,并且按顺序和倒序打印

a="01234567"

b=$((  $RANDOM%${#a}  ))     

产生随机数

c=${a:b:1}                                   

 匹配a中第b个开始打印后面一位

a=${a/$c/}

b=$((   $RANDOM%${#a}  ))

echo -n $c; echo ${a:b:1}

echo -n ${a:b:1} ;  echo $c

这里就只分享了这个几个脚本,如果还有什么好的脚本请联系我,我们一起研究讨论。

QQ 714083947

心得:多写  多练 多思考  脚本不是问题,就是块垫脚石!