脚本编写练习题:

1、写一个脚本,完成以下功能

    1)显示当前系统上第1块网卡eth0的IP地址,如果发生错误,则重定向至/dev/null;

    2) 显示/var/目录下的所有文件或者子目录,但要把所有字母换成大写;

    3)以一个命令显示当前系统上所有可用shell对应的可执行文件的文件内容类型,并让结果以全大写的方式显示;

编写脚本内容如下:

#!/bin/bash

   ifconfig eth0|grep 'inet addr'|cut -d: -f2|cut -d' ' -f1 2> /dev/nell

   ls /var | tr 'a-z' 'A-Z'

   file `cat /etc/shells`|tr 'a-z' 'A-Z'

2、在命令行里添加十个用户,从user1-10,而且每一个用户都有一个与用户名相同的密码。

编写脚本内容如下:

#!/bin/bash

   for Myuser in {1..10};do

       useradd user$Myuser &> /dev/null

       echo "user$Myuser" |passwd --stdin user$Myuser &> /dev/null

   done

3、写一个脚本:

     1)切换工作目录至/var

     2) 依次向/var目录中的每一个文件或者子目录问好,形如:(提示:for FILE in /var/*;或for FILE in `ls /var`;)

        Hello,log

        Hello,run

编写脚本内容如下:

#!/bin/bash

   cd /var/

   for FILE in `ls /var`;do

       echo "Hello, $FILE"

   done

4、写一个脚本:

      1)设定变量FILE的值为/etc/passwd

      2) 使用循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容;(提示:LINE=`head -2 /etc/passwd|tail -1`可以取得第2行)

      3)把这些行保存至/tmp/mypasswd文件中。

编写脚本内容如下:

#!/bin/bash

   FILE=/etc/passwd

   for LINE in 2 4 6 10 13 15;do

       head -$LINE $FILE|tail -1|tee -a /tmp/mypasswd

   done

   unset FILE

5、写一个脚本:

     1)设定变量FILE的值为/etc/passwd

     2) 依次向/etc/passwd中的每个用户问好,并显示shell,形如:(提示:LINES=`wc -1 /etc/passwd|cut -d" " -f1 `)

            Hello,root,your shell:/bin/bash

     3) 统计一共有多少个用户。

编写脚本内容如下:

#!/bin/bash

  FILE=/etc/passwd

  LINES=`wc -l $FILE|cut -d' ' -f1`

  for LINE in `seq 1 $LINES`;do

      MYUSER=`head -$LINE $FILE|tail -l|cut -d: -f1`

      MYSHELL=`head -$LINE $FILE|tail -l|cut -d: -f7`

      echo "Hello,$MYUSER,your shell:$MYSHELL"

 done

 echo "a total of $LINES users."

6、写一个脚本:

   1)显示当前系统日期和时间,而后创建目录/tmp/lstest

   2) 切换工作目录至/tmp/lstest

   3) 创建目录aid,b56e,6test

   4) 创建空文件xy,x2y,732

   5) 列出当前目录下以a,x或者6开头的文件或目录;

   6) 列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录; 

编写脚本内容如下:

#!/bin/bash

   WDIR=/tmp/lstest 

   date

   mkdir $WDIR &> /dev/null

   cd $WDIR

   mkdir aid b56e 6test &> /dev/null

   touch xy x2y 732

   ls ./|grep ^[ax6].*

   ls ./|grep [[:alpha:]][0-9].*

7、编写脚本,从1加到100。

编写脚本内容如下:

#!/bin/bash

  declare -i SUM=0

  for I in {1..100};do

    SUM=$[$SUM+$I]

  done

  echo "the sum is : $SUM."

8、编写脚本:100以内的偶数和。

#!/bin/bash

  declare -i SUM=0

  for I in `seq 2 2 100`;do

    SUM=$[$SUM+$I]

 done

 echo "the sum is : $SUM." 

9、写一个脚本:添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加。

#!/bin/bash

  for I in {1..10};do

    ! id user$1 &> /dev/null && useradd user$I &> /dev/null && echo "add user$I successfully!"

  done

10、写一个脚本:通过ping命令测试192.168.0.151到192.168.0.254之间的所有主机是否在线,如果在线,就显示“ip is up.”否则,就显示“ip is down.”