linux shell学习四

Posted 平常心,平常心

tags:

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

Shell分支语句

casein
模式1)
    command1
    command2
    command3
    ;;
模式2)
    command1
    command2
    command3
    ;;
*)
    command1
    command2
    command3
    ;;
esac

说明:case后为取值,值后为关键字 in,接下来是匹配的各种模式,每一模式最后必须以右括号结束。

值可以为变量或常数。  ;;类似C语言的break,不可取消!

举例:

#!/bin/sh 
#auther:linuxdaxue.com
#date:2016-05-30
case $1 in
start | begin)
    echo "I am started!"  
    ;;
stop | end)
    echo "I am stopped!"  
    ;;
*)
    echo "Other command!"  
    ;;
esac

说明:这个脚本练习的是模式匹配,模式匹配支持‘|’符,有一个条件符合就会执行命令。

举例2:

PROJECTNAME="zynq";

#call fun
printPwd()
{
   #echo pwd  
   echo "current directory is `pwd`";
}

case "$1" in
#启动服务
create)
    if [  -d $PROJECTNAME ] ;then                                                                                                                                            
        echo "文件夹$PROJECTNAME已存在,删除后重新创建";
        #删除目录,成功返回0
         rm -rf $PROJECTNAME;
    fi
    #创建目录,成功返回0
    mkdir $PROJECTNAME;
    if [ $? != 0 ];then
        echo "创建文件夹失败,请重试!";
        exit -1;
    fi
    
    ;;

delete)
    if [ ! -d $PROJECTNAME ] ;then
        echo "文件夹$PROJECTNAME 不存在,请重试";
        exit 1;
    fi

    #删除目录,成功返回0
    rm -rf $PROJECTNAME;
    if [ $? != 0 ];then
        echo "删除文件夹失败,请重试!";
        exit -1;
    fi
    ;;

*)
    #处理其他情况,显示用法
    echo "你输入的参数错误,请输入以下参数:{create|delete}";
    exit -1;
    ;;

esac

cd $PROJECTNAME;
printPwd;

echo "last line";

exit 0;

这里利用case语句建立一个类似Makefile的功能。

参数为create时,检测文件夹是否存在,若存在则删除。 重新建立新的文件夹

参数为delete时,检测文件夹是否存在,若不存在则强制退出。删除文件夹。

参数为其他时,输出正确的参数提示。

以上是关于linux shell学习四的主要内容,如果未能解决你的问题,请参考以下文章

验证码逆向专栏某验四代文字点选验证码逆向分析

实验四代码评审

Linux bash基础特性二

shell脚本之变量与状态码

shell学习四十九天----进程建立

Linux Shell Bash 带有特殊含义的退出码