第九周-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)
N27_whatN27_what
上一篇 2017-08-23 17:20
下一篇 2017-08-24 16:27

相关推荐

  • keepalived配置

    前两个配置做完实验没截图,后面的实验有图片。 keepalived的的单独设置 1.确保时间同步 ntpdate 10.1.0.1 2.保证/etc/hosts文件可以解析到 3.本机配置ssh-keygen -t rsa -P ''  ,然后ssh-copy-id -i .ssh/id_rsa.pub root@10.1.44…

    Linux干货 2016-11-11
  • Homework Week-2 Linux文件管理

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理工具:cp, mv, rm         cp命令:copy  源文件  目标文件                单源复制:cp [O…

    Linux干货 2016-08-22
  • Linux发展及简单命令

    一 计算机的组成及其功能 冯·诺依曼提出的计算机体系结构:计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成。 二 Linux的发行版 Linux发行版主要有三个分支:Debian、Slackware、Redhat。 (1)Debian:(以社区的方式运作) Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器; Lin…

    2018-03-02
  • 2016/10/14作业

    2016/10/14作业: ##操作类: 1. 设置自己的终端提示符,要求字符终端登录时: a> 需要带颜色  b> 需要显示当前执行到了第几条命令  c> 显示当前登录终端,主机名和当前时间 答:要在用户登录时终端提示符,需要更改当前系统的环境变量: /etc/bashrc文件 #[ "$PS1" …

    Linux干货 2016-10-19
  • 1. linux basic cmd

    一。 国有股加点廉价航空j 1. 2. 二。

    2017-11-13
  • 文件权限

    文件权限 文件属性       rw-r–r–表示文件权限     Root 表示文件所有者     Root 表示文件所属组     0 表示文件的大小 …

    Linux干货 2016-08-11