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

相关推荐

  • LNMP

    1、源码编译安装LNMP架构环境 OS版本:2.6.32-431.el6.x86_64 Nginx版本:nginx-1.6.1 mariadb版本:mariadb-10.0.13 php版本:php-5.4.26 1、安装编译安装所需系统环境 ~]# yum groupinstall "Development Tools" "S…

    Linux干货 2017-02-09
  • ​从实验来了解grub

    实验一为grub设置密码 先看一看grub是怎么样的 grub有两个版本 grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2  Note:grub 1.x是完全重写的只不过是保留grub 0.x的工作机制。 2.利用grub自带命令生成密码grub-md5-cry…

    Linux干货 2016-06-09
  • 正则表达式

    正则表达式是一种以一些字符赋予特殊意义之后,用来表达字符串,用以筛选各种形式的字符串用来进行查找、替换、删除等各种文本编辑作用的一种表示方式。 正则表达式的特殊字符 字符表示 .   可以表示任意可打印字符 [] 中括号范围内任意单个字符 [^] 中括号范围外任意单个字符 (相对所有可打印字符) [:space:] 表示任意单个空白字符 [:dig…

    2017-08-03
  • 搭建discuz服务器

      Discuz是目前比较流行的社区论坛系统,其具有安装简便、功能强大的特点,下面以LAMP为基础平台来搭建discuz服务器。   一、安装apache服务   二、安装php   三、安装mysql   四、安装php-mysql   五、启动mysql服务   六、创建数据库 &nb…

    Linux干货 2016-03-18
  • 每日一练–8.8 sed,vim

     1 、删除/etc/grub2.conf 文件中所有以空白开头的行行首的空白字符     sed  's/^[[:space:]]//g' /etc grub2.conf  2 、删除/etc/fstab 文件中所有以# 开头,后面至少跟一个空白字符的行的行首的# 和空白字符   &n…

    Linux干货 2016-08-12
  • 马哥教育网络班22期+第1周课程练习 忍者乱太郎喻成

    1.计算机组成:  根据冯诺依曼的计算机结构分为四大块:控制器,运算器, 存储器,输入输出设备 控制器:对其他的组件进行控制 运算器:用于处理计算工作,不控制输入和输出 储存器:用于暂时或长期存储数据 输入输出:与外界进行交互 个人延伸: 我的理解这是一个在计算机研发之前的一个理论假象, 相对现在真实的计算机体系,这个分类会比较模糊。 运算器:cp…

    Linux干货 2016-08-15

评论列表(1条)

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

    稍微注意一下排版。