SHELL用法五(Case语句)

Posted nsh123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SHELL用法五(Case语句)相关的知识,希望对你有一定的参考价值。

1、SHELL编程Case语句案例实战
1)Case选择条件语句的格式:
case $INPUT in
Pattern1)
语句1
;;
Pattern2)
语句2
;;
esac

 

2)Case语句企业案例实战一:
case $1 in
1)
wget -c http://nginx.org/download/nginx-1.16.0.tar.gz
;;
esac

 

2、SHELL编程Select语句案例实战
1)Select选择菜单语句的格式:
select i in redhat centos ubuntu suse(菜单名)
do
echo $idone

 

2)Select语句企业案例实战一:
#!/bin/bash
PS3="What you like most of the open source system? "
select i in redhat centos ubuntu suse
do
echo "Your Select OS is " $i
done

 

3)Select&Case语句企业案例实战二:
#!/bin/bash
PS3="What you like most of the open source system? "
select i in redhat centos ubuntu suse
do
case $i in
redhat)
echo "redhat linux"
;;
centos)
echo "centos linux"
;;
ubuntu)
echo "ubuntu linux";;
suse)
echo "suse linux"
;;
*)
exit
esac
done

 

3、SHELL编程Find语句案例实战
1)SHELL编程四剑客工具:Find、Grep、Sed、Awk,通过四剑客可以完成常
规Linux指令无法完成或者比较复杂的功能,学好SHELL编程四剑客有助于
SHELL编程能力再上一层楼。
2)SHELL编程四剑客之一的Find工具,主要是用于Linux操作系统去查找某个文
件和目录所在的位置的(绝对路径),Find工具的语法格式:
find(工具) path(路径) -option(参数) -action(动作);
find
path
-option
[ -print ]
[ -exec
-ok
command ]

 

? Path路径:给定find工具一个大概的范围,从哪个范围去查找;
? Option参数:按照某些特征:-name、-size、-mtime、-user;
? Action动作:找到文件或者目录之后执行的操作的动作(打印、执行);
3)SHELL编程四剑客Find工具案例操作一,基于Find工具查找Linux系统下
eth0网卡配置文件所在的路径。
find / -name eth0find / -name ifcfg-eth0
find / -name "*eth0"
find /etc/ -name "*eth0"
find /etc/sysconfig/network-scripts/ -name "*eth0"

 

4)SHELL编程四剑客Find工具案例操作二,基于Find工具查找Linux系统下
auto_mysql_backup.sh所在的路径。
find / -name auto_mysql_backup.sh
find / -name *mysql_backup*.sh

 

5)SHELL编程四剑客Find工具案例操作三,基于Find工具查找Linux系统下
以.rpm结尾的软件包,并且找到以mariadb命名开头的包,排除mariadb-libs
包。
find / -name "*.rpm"
find / -name "mariadb*rpm"
find / -name "*.rpm" -a -name "mariadb*"
find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"
find / -name "*.rpm" -a -name "mariadb*" -a ! -name "mariadb-libs*

 

6)SHELL编程四剑客Find工具案例操作四,基于Find工具查找Linux系统下
以.rpm结尾的软件包,并且找到以mariadb命名开头的包,排除mariadb-libs
包,并且将剩余软件包拷贝至/tmp/目录。
for soft in `find / -name "*.rpm" -name "mariadb*" ! -name
"mariadb-libs*"`;do cp $soft /tmp/;done
cp `find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"`
/tmp/
cp $(find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*")
/tmp/
find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*" -exec cp
{} /tmp/ ;
find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"|xargs -I {}cp {} /tmp/

 

以上是关于SHELL用法五(Case语句)的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本之 if,case,for的用法

SQL Select 语句的用法

shell中IF的用法介绍

shell脚本中case的用法

shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句

CentOS shell-case语句