脚本编写练习题:
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.”