第九周-Shell脚本编程

 

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;

#!/bin/bash
nologin=0
login=0
for i in  `cut -d : -f 7 /etc/passwd`;do
     if [ $i = /sbin/nologin ];then
        let nologin++
     else
        let login++
     fi
done
echo Login is $login,Nologin is $nologin

2、写一个脚本

(1) 获取当前主机的主机名,保存于hostname变量中;

(2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;

(3) 否则,则显示当前主机名;

#!/bin/bash

hostname=$HOSTNAME
if [ $hostname = localhost ];then
   hostname www.magedu.com
else
   echo "$hostname"
fi

3、写一个脚本,完成如下功能

(1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;

(2) 如果存在,则显示此设备上的所有分区信息;

#!/bin/bash

if [ -b $1 ];then
 fdisk -l $1
else
 echo "Not is Block device file"
fi

4、写一个脚本,完成如下功能

脚本能够接受一个参数;

(1) 如果参数1为quit,则显示退出脚本,并执行正常退出;

(2) 如果参数1为yes,则显示继续执行脚本;

(3) 否则,参数1为其它任意值,均执行非正常退出;

#!/bin/bash

while true;do
read -p "please input yes|quit|other str: " word
case $word in
  quit)
  exit 0
  ;;
  yes)
  continue
  ;;
  *)
  echo "Wrong"
  exit 2
 ;;
esac
done

5、写一个脚本,完成如下功能

传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;

(1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;

(2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2;

(3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;

(4) 其它任意值,则显示错误压缩工具,并执行非正常退出;

#!/bin/bash
mkdir /backups 2>/dev/null
case $1 in
  gzip)
  tar -zcPf /backups/etc-`date +%Y%m%d`.tar.gz /etc
  ;;
  bzip2)
  tar -jcPf /backups/etc-`date +%Y%m%d`.tar.bz2 /etc
  ;;
  xz)
  tar -JcPf /backups/etc-`date +%Y%m%d`.tar.xz /etc
  ;;
  *)
  echo "Error compression tool"
  exit 2
  ;;
esac

6、写一个脚本,接受一个路径参数:

(1) 如果为普通文件,则说明其可被正常访问;

(2) 如果是目录文件,则说明可对其使用cd命令;

(3) 如果为符号链接文件,则说明是个访问路径;

(4) 其它为无法判断;

#!/bin/bash

if [ -f $1 ];then
  echo "Normal access the file"
elif [ -d $1 ];then
  echo "Can use cd command"
elif [ -h $1 ];then
  echo "this is a access path"
else
  echo "Cannot judge"
fi

7、写一个脚本,取得当前主机的主机名,判断

(1) 如果主机名为空或为localhost,或为”(none)”,则将其命名为mail.magedu.com;

#!/bin/bash

if [ -z $HOSTNAME -o "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "(none)" ];then
hostname mail.magedu.com
fi

 

原创文章,作者:N27_what,如若转载,请注明出处:http://www.178linux.com/85296

(0)
上一篇 2017-08-23 17:20
下一篇 2017-08-24 16:27

相关推荐

  • 网络管理之多网卡bond,mode1

    一.概述 Bonding     就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 Bonding的工作模式     Mode…

    Linux干货 2016-09-15
  • Hive深入浅出

    1.  Hive是什么 1) Hive是什么? 这里引用 Hive wiki 上的介绍: Hive is a data warehouse infrastructure built on top of Hadoop. It provides tools to enable easy data ETL, a mechanism to put stru…

    Linux干货 2016-03-22
  • Week 1–Linux基础1

    一. 计算机是由什么组成的? 计算机有什么作用呢?  1.计算机是由硬件系统与软件系统两大部分组成的. 那么是什么呢?  硬件系统: 1.1 输入组件(如鼠标,键盘等); 输出组件(显示器,打印机等); 1.2 核心大脑–CPU(里面包含有 算术逻辑、控制、记忆等单元); 1.3 为了与以上2大重要部件连接的,肯定需要一个可以…

    Linux干货 2016-12-05
  • 文件的查找

    文件的查找 使用locate命令 默认从根开始搜索 非实时查找(数据库查找) locate 文件名 查询系统上预建的的文件索引数据库    /var/lib/mlocate/mlocate.db 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb)。注意工作中不能轻易…

    Linux干货 2016-08-18
  • Therapist Cyndi Darnell Helps Couples Discover More Pleasure in Sex and Relationships

    The brief Version: Intercourse and love Therapist Cyndi Darnell features clients around the globe, and she’s observed just about any problem pertaining to intimacy. But her c…

    Linux干货 2022-12-04
  • 心清冷其若冰,志皎洁其若云

    第一篇,当做测试也做开始。 心清冷其若冰,志皎洁其若云。 这闹哄哄的人间啊,仿佛是一堆杂货。无奇不有,无所不能。情感,城市,人际。每天走在这杂乱里,需要有一颗清澈而安静的心,来面对。 会累的。就算是拥有了许多,也是会累的。偶尔,我们也会在深夜里泪流满面吧。偶尔,我们也会心烦意乱的不知所措吧。 太多欲望的人间,热闹的上演着各种剧本。太多空洞的灵魂,喧嚣着各种声…

    Linux干货 2016-11-28