shell脚本参数练习

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

!/bin/bash

#

login_user=0

nologin_user=0

for i in $(cat /etc/passwd | cut -d : -f 7);do

if [ $i == “/sbin/nologin” ];then

let nologin_user++

else

let login_user++

fi

done

echo “login_user=$login_user,nologin_user=$nologin_user.”

2、写一个脚本

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

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

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

#!/bin/bash

#

hostname=$(echo $(hostname))

if [[ $hostname == “localhost” ]];then

hostname www.magedu.com

else

echo “$hostname”

fi

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

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

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

#!/bin/bash

#

if [ $# -lt 1 ];then

echo “At least one device file.”

exit 1

fi

if [ -e $@ ];then

echo “$(fdisk -l $@)”

else

echo “Unknown device”

exit 2

fi

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

脚本能够接受一个参数;

(1)如果参数1为quit,则显示退出脚本;

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

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

#!/bin/bash

#

cat << EOF

1.quit

2.yes

EOF

read -p “Please enter(quit or yes):” name

if [[ $name == quit ]];then

echo “exit the script.”

elif [[ $name == yes ]];then

echo “Continue with the script.”

else

echo “Unknown scirpt.”

exit 2

fi

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-20160603.tar.bz2

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

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

#!/bin/bash

#Use tar and gzip, bzip2, xz archive compression/etc/directories, and name it/backups/etc

-20string606string3./ backups/etc – 20string606string3. The tar. Bz ip2./

backups/etc – 20string606string3. The tar. Xz

cat << EOF

gzip)Archive using tar and gzip

bzip2)Archive using tar and gzip

xz)Archive using tar and gzip

EOF

read -p “please enter[gzip|bzip2|xz]:” string

if [[ $string == gzip ]];then

tar -zcf /backups/etc-$(date +%Y%m%d).tar.gz /etc

elif [[ $string == bzip2 ]];then

tar -jcf /backups/etc-$(date +%Y%m%d).tar.bz2 /etc

elif [[ $string == xz ]];then

tar -Jcf /backups/etc-$(date +%Y%m%d).tar.xz /etc

else  echo “Compression error.”

exit 1

fi

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

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

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

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

(4)其它为无法判断;

#!/bin/bash

#

if [ $# -lt 1 ];then

echo “At lease one arguments.”

exit 1

fi

if [ -f $1 ];then

echo “Normal access.”

elif [ -d $1 ];then

echo “Use  cd command.”

elif [ -L $1 ];then

echo “Access path.”

else  echo “Unknown file.”

fi

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

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

#!/bin/bash

#

hostname=$(echo `hostname`)

if [ -z “$hostname” -o “$hostname” == “loclahost” -o “$hostname” == “none” ];then

hostname www.magedu.com

else

echo “$hostname”

fi

 

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

(0)
N27_shijinlongN27_shijinlong
上一篇 2017-09-17 19:57
下一篇 2017-09-17 21:51

相关推荐

  • 第八周作业(网络、bash脚本)

    1-3,计算机网络基础博客已总结,简要补充 协议的分层 为了使那些比较复杂的网络协议更加简单化。ISO根据各通信协议的功能将网络体系分成七层。 在这个分层中,下层为上一层提供服务。上下层之间进行交互时所遵循的约定叫做“接口”。同层之间的交互所遵循的约定叫做“协议” 说的更形象一点,两个中国人打电话这个通信。就可以分为两层,同层之间的叫协议,我说汉语,你也说汉…

    Linux干货 2016-12-18
  • shell脚本的练习

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态  在线的主机使用绿色显示  不在线的主机使用红色显示 #!/bin/bash for i in {1..254};do { ip=…

    2017-09-17
  • 网络21期第十周博客作业

    网络21期第十周博客作业 1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) Centos6启动流程:       POST加电自检 —> BOOT Sequence —> 加载内核启动系统  &…

    Linux干货 2016-09-15
  • 7月19号:计算机基础+在VMware12中安装CentOS6.8

        16号从正下暴雨的武汉来到帝都参加马哥培训班,从清河公寓亮哥开始,到宿舍另外五位室友,渐渐认识更多人,还算适应额不错。但走在北京的马路上,多少还是有些陌生,不过就如宿舍一样,来的时候脏兮兮,经过一番打扫后,干净了不少,我也会很快习惯在这边的生活,精力全放在linux上!   &nb…

    Linux干货 2016-08-05
  • 1.计算机的组成原理与linux初识

    计算机的组成原理 抽象 具体 Linux初识 负责与硬件交互,并向外提供系统调用 Linux大家庭 suse系列: opensuse suse enterprise redhat系列: centos redhat Debian系列: ubuntu debian 命令总结 显示本机IP(需要root权限) [root@localhost dev]# ifcon…

    Linux干货 2017-07-02
  • 集中练习8-bash脚本及系统启动

    集中练习8-bash脚本及系统启动

    2017-12-06