微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SHELL之每天每天一小练二

题目:

1、取出/etc/inittab文件的第6行;
2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示
使用cut、sort结合管道实现
3、如果/var/log/messages文件的行数大于100,就显示好大的文件
4、显示/etc目录下所有以pa开头的文件,并统计其个数
5、如果用户hadoop不存在就添加,否则显示用户已存在
6、编写一个 Shell 程序 test1,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息
7、编写一个 Shell 程序 test2,从键盘读入 x、y 的值,然后做加法运算,最后输出结果

解决

1、取出/etc/inittab文件的第6行;

[root@bohe ~]# head -6 /etc/inittab |tail -1
#

2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示
使用cut、sort结合管道实现

[root@bohe ~]# cut -d : -f7 /etc/passwd |sort | uniq -c | sort -n
      1 /bin/sync
      1 /sbin/halt
      1 sbin/nologin
      1 /sbin/shutdown
      3 /bin/bash
     41 /sbin/nologin

3、如果/var/log/messages文件的行数大于100,就显示好大的文件

[root@bohe ~]# vim afile.sh +
#!/bin/bash
a=`wc -l /var/log/messages`
if [[ $a > 100  ]]
then
        echo "好大的文件"
else
        echo "/var/log/messages的行数为: $a"
fi

 4、显示/etc目录下所有以pa开头的文件,并统计其个数

[root@bohe ~]# vim pa.sh +
#!/bin/bash
echo "/etc这个目录下所有以pa开头的文件有: "
find /etc/ -name "pa*" -type f
num=`find /etc/ -name "pa*" -type f | wc -l`
echo "文件的个数有: $num"

5、如果用户hadoop不存在就添加,否则显示用户已存在 

[root@bohe ~]# vim usr.sh
#!/bin/bash
grep hadoop /etc/passwd > /dev/null
if [ $? -ne 0  ]
then 
        useradd hadoop
else
        echo "用户已存在"
fi

 6、编写一个 Shell 程序 test1,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息

#!/bin/bash
read -p "请输入一个目录名: " path
ls -l $path

 7、编写一个 Shell 程序 test2,从键盘读入 x、y 的值,然后做加法运算,最后输出结果

#!/bin/bash

read -p "请输入第一个数字: " a
expr $a "+" 10 &>/dev/null
if [ $? -ne 0 ]
then
        echo "请输入正确的数字a"
        exit 0
else
read -p "请输入第二个数字: " b
expr $b "+" 10 &>/dev/null
        if [ $? -ne 0 ]
        then
                sum=$[$a+$b]
                echo "两个数相加之和为: $sum"
        else
                echo "请输入正确的数字y"
        fi
fi

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐