bash脚本编程

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell;分别统计这两类用户的个数;通过字符串比较来实现;
#!/bin/bash
declare -i loginSum=0;
declare -i nologinSum=0;
for x in `cat /etc/passwd|cut -d: -f 7`
do
if [ “/sbin/nologin” == “$x” ];then
let nologinSum+=1;
else
loginSum+=1;
fi
done
echo “loginSum:$loginSum”
echo “nologinSum:$nologinSum”
[root@centos6 script]# sh nologin.sh
loginSum:7
nologinSum:30
2、写一个脚本:
(1)获取当前主机的主机名,保存于hostname变量中;
(2)判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
(3)否则,则显示当前主机名。
#!/bin/bash
hostname=”`hostname`”
if [ $hostname == “localhost” ];then
sed -i “s@HOSTNAME\=localhost@HOSTNAME\=www.mgedu.com@” /etc/sysconfig/network
`hostname www.mgedu.com`
else
echo “`hostname`”
fi
~
bash脚本编程
bash脚本编程
3、 写一个脚本,完成如下功能。
(1)传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
(2)如果存在,则显示此设备上的所有分区信息
#!/bin/bash
if [ $# -eq 0 ];then
echo “please input argument like:/dev/sda1”
fi
if [ -e “$1” ];then
fdisk -l $1;
else
echo “this directory is not exist”
fi
4、写一个脚本,完成如下功能。
脚本能够接受一个参数
(1)如果参数1为quit,则显示退出脚本,并执行正常退出;
(2)如果参数1为yes,则显示继续执行脚本;
(3) 否则,参数1为其它任意值,均执行非正常退出。
#!/bin/bash
while true
do
read -p “please input yes|quit or other string:” str
case “$str” in
quit)
echo “exit the script”;
exit 0;
;;
yes)
echo “Continue with the script”;
continue;
;;
*)
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 input gzip bzip2 xz: ” str
case “$str” in
gzip)
tar -zcvf /backup/etc-20171031.tar.gz /etc/ ;
;;
bzip2)
tar -jcvf /backup/etc-20171031.tar.bz2 /etc/ ;
;;
xz)
tar -Jcvf /backup/etc-20171031.tar.xz /etc/;
;;
*)
echo “error compress”;
exit 1;
esac
6.    写一个脚本,接受一个路径参数:
(1) 如果为普通文件,则说明其可被正常访问;
(2) 如果是目录文件,则说明可对其使用cd命令;
(3) 如果为符号链接文件,则说明是个访问路径;
(4) 其它为无法判断。
#!/bin/bash
if [ -f $1 ];then
echo ” This is a common file “
elif [ -d $1 ];then
echo “This is a path”
elif [ -L $1 ];then
echo “This is a Link”
else
echo “This is not a file”;
fi
7.    写一个脚本,取得当前主机的主机名,判断:
(1) 如果主机名为空或为localhost,或为”(none)”,则将其命名为mail.magedu.com;
(2) 否则,显示现有的主机名即可。
#!/bin/bash
name=”`hostname`”
if [ -z “$name” -o “$name” = “localhost” -o “$name” = “(none)” ];then
echo $hostname
sed -i “s@HOSTNAME\=localhost@HOSTNAME\=www.mgedu.com@” /etc/sysconfig/network
`hostname www.mgedu.com`
echo “2”
else
echo “`hostname`”
fi

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

(1)
469008940469008940
上一篇 2017-10-31 17:32
下一篇 2017-11-01 13:22

相关推荐

  • Nginx及其相关配置详解(二)

    与套接字相关的配置: 1、server { … }  #配置一个虚拟主机;         Default:—         Context:http server { # 配…

    2017-07-14
  • 基于ssl功能实现mysql主从复制

    基于ssl功能实现mysql主从复制         证书准备:                                  CA证书…

    2016-11-22
  • 重要开源协议解析(BSD,Apache,GPL,LGPL) 整理

    现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议详见其网站(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。 这里整理了四种最常用的…

    Linux干货 2016-07-22
  • Tomcat

        Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但…

    2017-09-05
  • CentOS启动流程排错

    grub legacy CentOS 6启动流程: POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init …

    Linux干货 2016-09-13
  • 文本处理工具

    首先介绍一下wc 这个工具,一看到这个词,我不禁捧腹大笑,这不是我们经常要去的地方吗?其实我们都错了,厕所的正确翻译为toilet,为什么叫wc 呢?这中间还有个故事,在这里就大概说一下吧。 很早以前,厕所Toilet里都有水箱watercloset, 人们一提到water closet就想到了toilet,因此watercloset就成了toil…

    2017-07-29

评论列表(1条)

  • 马哥教育
    马哥教育 2017-11-15 15:04

    稍微注意一下排版。