集中练习7-bash脚本

集中练习7-bash脚本

1. 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;
“`
#!/bin/bash
#
declare -i loguser=0
declare -i nologuser=0
while read userinfo; do
usershell=`echo $userinfo | cut -d’:’ -f7`
if [ $usershell == ‘/sbin/nologin’ ]; then
let nologuser+=1
else
let loguser+=1
fi
done < /etc/passwd
echo “Login user: $loguser.”
echo “Nologin user: $nologuser.”
“`
2. 写一个脚本
(1) 获取当前主机的主机名,保存于hostname变量中;
(2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
(3) 否则,显示当前主机名;
“`
#!/bin/bash
#
hostname=`hostname`
if [ $hostname == ‘localhost’ ]; then
hostname ‘www.magedu.com’
fi
echo “Hostname for this host is $hostname.”
“`
3. 写一个脚本,完成如下功能
(1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
(2) 如果存在,则显示此设备上的所有分区信息;
“`
#!/bin/bash
#
read -p “Please enter a disk device in the following format(/dev/sda): ” disk
if fdisk -l | grep “^Disk $disk”; then
fdisk -l $disk
else
echo “The disk you entered does not exist.”
exit 1
fi
“`
4. 写一个脚本,完成如下功能
脚本能够接受一个参数
(1) 如果参数1为quit,则显示退出脚本,并执行正常退出;
(2) 如果参数1为yes,则显示继续执行脚本;
(3) 否则参数1为其他任意值,均质性非正常退出;
“`
#!/bin/bash
#
read -p “Please enter a parameter: ” PARM
while true; do
case $PARM in
quit)
echo “Quiting the script…”
exit 0
;;
yes)
read -p “Please reenter a parameter: ” PARM
;;
*)
echo “Abnormal quiting.”
exit 1
;;
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
#
read -p “Please choose a compress method {gzip|bzip2|xz} : ” COMP_MTHD
ls /backups/ &> /dev/null || mkdir /backups
case $COMP_MTHD in
gzip)
tar -zcf /backups/etc-`date +%Y%m%d`.tar.gz /etc/* &> /dev/null && echo “Gzip archive finished.”
;;
bzip2)
tar -jcf /backups/etc-`date +%Y%m%d`.tar.bz2 /etc/* &> /dev/null && echo “Bzip2 archive finished.”
;;
xz)
tar -Jcf /backups/etc-`date +%Y%m%d`.tar.xz /etc/* &> /dev/null && echo “XZ archive finished.”
;;
*)
echo “Wrong compress tool.”
exit 1
;;
esac
“`
6. 写一个脚本,接受一个路径参数:
(1) 如果为普通文件,则说明其可被正常访问;
(2) 如果是目录文件,则说明可对其使用cd命令;
(3) 如果为符号链接文件,则说明是个访问路径;
(4) 其他为无法判断
“`
#!/bin/bash
#
read -p “Please eneter a filepath: ” filepath
until `ls $filepath &> /dev/null`; do
echo “$filepath is not a valid filepath.”
read -p “Please eneter a filepath: ” filepath
done
filetype=`file -b $filepath | cut -d’,’ -f1`
if echo $filetype | grep “symbolic link” &> /dev/null; then
echo “This is a access path.”
elif [ “$filetype” == ‘directory’ ]; then
echo “You can use cd command to enter this directory.”
elif [ “$filetype” == ‘ASCII text’ ]; then
echo “This file can be access normally.”
else
echo “Unknow file type.”
fi
“`
7. 写一个脚本,取得当前主机的主机名,判断
如果主机名为空或为localhost、或为“(none)”,则将其命名为mail.magedu.com;
“`
#!/bin/bash
#
hostName=$(hostname)
[ -z “$hostName” -o “$hostName”==”localhost” -o $hostName”==”none” ] && hostname mail.magedu.com
“`

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89524

(0)
N27_sapbcsN27_sapbcs
上一篇 2017-12-05
下一篇 2017-12-05

相关推荐

  • 计算机的组成及功能

    计算机的组成有中央处理器(包含逻辑运算器和控制器)、内存、输入设备、输出设备    逻辑运算器主要负责程序的运算和逻辑的判断、控制器是协调各组件与各单元的工作。 内存是与CPU进行沟通的桥梁,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。 输入设备是用户和计算机系统之间进行信息交换的主要装置之一。 输出设备是外…

    Linux干货 2017-07-02
  • Linux系统自动化安装基础

    Linux系统自动化安装基础 安装程序CentOS系统安装系统启动流程:bootloader–>kernel(initramfs)–>rootfs–>/sbin/init注意:安装过程中与启动过程中的文件不同 anaconda系统安装程序tui: 基于图形库curses的文本窗口gui:图形窗口 安装程序…

    Linux干货 2016-10-08
  • 如何安装VMware Workstation

    1、打开安装包,直接点击“下一步” 2、选择接受条款,单击“下一步” 3、选择安装路径,单击“下一步” 4、单击“下一步”,也可以勾选掉两个选项   5、单击“下一步”   6、点击“安装”   7、完成安装  

    2017-07-11
  • Linux下/proc目录详解

    Linux下/proc目录详解 proc目录总的概述 proc下有关进程的目录概述 proc下针对Linux系统相关的参数目录概述 /proc目录总的概述 1.首先,我们可以使用ll命令查看下/proc目录,如下 [root@centos6 ~]# ls -l /proc total 0 dr-xr-xr-x. 8 root root 0 May 19 04…

    Linux干货 2017-05-20
  • CentOS 6.5 LVM磁盘管理学习笔记(二)

    ACTIVE            '/dev/vg51cto/LogVol04' [22.80 GiB]inherit  ACTIVE       …

    Linux干货 2016-08-29
  • 十个让你变成糟糕的程序员的行为

    之前本站发表过《优秀程序员的十个习惯》以及《程序员需要具备的基本技能》,那是我们需要去学习和培养的。这里,我们主要讨论十个糟糕程序员的特征,主要是需要让我们去避免和小心的。 1) 情绪化的思维 如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。情绪化的思维或态度很有可能会把自己变成一个怪物。相信你经常可以看到很多很糟糕的程序…

    Linux资讯 2015-04-03

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-08 16:47

    脚本没有问题。赞