• shell脚本基本操作


     

    概述:

    Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等。 用户每输入一条命令,Shell就执行一条。这种从键盘输入命令,就可以立即得到回应的对话方式,称为交互的方式。

    当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,该程序文件就被称为Shell脚本

    查看tomcat进程并杀掉进程

    #!/bin/bash
    echo "开始查询tomcat运行的进程编号,查出将其kill"
    dsp_admin_id=`ps -ef|grep tomcat|grep -v "grep" | awk '{print $2}'`
    echo $dsp_admin_id
    
    for id in $dsp_admin_id
    do
        kill -9 $id
        echo "killed $id"
    done

    命令行:

    #####查找tomcat进程($2表示下标,可以为其他)
    ps -ef | grep tomcat | grep -v grep | awk '{print $2}'
    #####查找tomcat进程并杀死
    ps -ef | grep tomcat | grep -v grep | awk '{print $2}' | xargs kill -9



    分支判断

    #int类型_变量大小判断
    a=10
    b=20
    if [ $a == $b ]
    then
       echo "a 等于 b"
    elif [ $a -gt $b ]
    then
       echo "a 大于 b"
    elif [ $a -lt $b ]
    then
       echo "a 小于 b"
    else
       echo "没有符合的条件"
    fi
    
    
    
    #字符串判断(adc可以为变量)
    if [ -n 'abc' ];then
        echo "字符串长度大于0"
    elif [ -z 'abc' ];then
        echo "字符串长度为0"
    elif [ 'abc' = 'abc' ];then
        echo "两个字符串相等"
    elif [ 'abc' != 'abc' ];then
        echo "两个字符串不相等"
    fi
    
    
    
    #____多条件判断____________
    a=20
    b="dalan_123"
    #统计字符串长度
    echo ${#b}
    if (( $a > 10 && ${#b} > 20 ));then
        echo "两个条件同时满足"
        
    elif (( $a > 10 || ${#b} > 20 ));then
        echo "满足一个就执行"
        
    else
        echo "条件不满足"
    fi
    
    
    
    #if嵌套
    aa=100
    if [ $aa -gt 50 ];then
        echo "$aa 大于50"
        if (( $aa % 2 == 0 ));then
            #两种操作方式
            echo "$(($aa+120))"
            echo "$[$aa+120]"
            echo "$aa %2= $[$aa%2]"
        fi
    else
        echo "$aa 不小于50"
    fi
    
    
    
    #从键盘接收数据判并判断
    read age
    if (( $age <= 2 )); then
        echo "婴儿"
    elif (( $age >= 3 && $age <= 8 )); then
        echo "幼儿"
    elif (( $age >= 9 && $age <= 17 )); then
        echo "少年"
    elif (( $age >= 18 && $age <=25 )); then
        echo "成年"
    elif (( $age >= 26 && $age <= 40 )); then
        echo "青年"
    elif (( $age >= 41 && $age <= 60 )); then
        echo "中年"
    else
        echo "老年"
    fi
    
    
    
    #文件比较
    if [ -e test.html ];then
        echo "test.html存在"
    elif [ -d test.html ];then
        echo "test.html是目录"
    elif [ -f test.html ];then
        echo "test.html存在,并且是一个普通文件"
    elif [ -c test.txt ];then
        echo "文件存在特殊字符"
    elif [ -n test.txt ];then
        echo "文件为空"
    else
        echo "不知道,拜拜"
    fi

    字符串操作

    #!/bin/bash
    #字符串拼接(连接、合并)
    name="Shell"
    url="http://c.biancheng.net/shell/"
    str1=$name$url  #中间不能有空格
    str2="$name $url"  #如果被双引号包围,那么中间可以有空格
    str3=$name": "$url  #中间可以出现别的字符串
    str4="$name: $url"  #这样写也可以
    str5="${name}Script: ${url}index.html"  #这个时候需要给变量名加上大括号
    echo $str1
    echo $str2
    echo $str3
    echo $str4
    echo $str5
    #统计字符串长度
    echo ${#url}
    
    
    
    #字符串截取
    url="www.biancheng://wei.net"
    #截取3到7位字符串
    echo ${url:3:7}
    #截取第5位后的字符串
    echo ${url:5}
    #休眠5秒(强等待)
    sleep 5s 
    
    #截取':'后的数据
    echo ${url#*:}

    循环

    #!/bin/bash
    #___________while循环__________________
    read -p "从键盘接收数据:" snum  
    read -p "从键盘接收数据: " enum  
    #while循环
    while [[ $snum -le $enum ]];do  
        echo "当前为 $snum"  
        ((snum++))  
    done  
    echo "执行完成"
    
    
    #死循环
    while true  
    do  
    echo "Welcome to Yiibai"  
    done
    
    
    #从1叠加到100的总和
    i=1
    sum=0  
    while((i <= 100))  
    do  
        #echo $i    
        sum=$[sum+i]
        let i++
    done
    echo $sum
    
    
    
    #__________for循环___________________
    sum=0
    for ((i=1; i<=100; i++))
    do
        #循环体
        ((sum += i))
    done
    echo "总和为 $sum"
    
    
    
    #通过in来循环
    sum=0
    for n in 1 2 3 4 5 6
    do
        echo $n
         ((sum+=n))
    done
    echo "The sum is "$sum
    
    
    
    #循环和判断
    sum=0
    for ((i=1; i<=50; i++))
    do  
        if (( $i % 2 == 0 ));then
            echo $i
        fi
        ((sum += i))
    done
    echo "总和为 $sum"

    其他

    #!/bin/bash
    #判断运行python进程是否大于1
    if [ $(ps -ef|grep -c "python3") -gt 1 ]
    then 
       echo "true"
    fi
    
    
    #列出当前运行的进程数量
    aa=$(ps -ef|grep -c "tomcat")
    echo "$aa"
    
    #列出tomcat在运行的进程信息
    aa=$(ps -ef|grep "tomcat")
    echo "$aa"
    
    
    #两种打印打球路径的方法
    echo $(cd $(dirname $0); pwd)
    echo $path `pwd`

     shell内调用python脚本

    #!/bin/bash
    a=$(grep -c "验证通过" /home/work/test/index.html)
    b=20
    if [ $a -gt $b ]
    then
      echo "$a 条件通过"
    else
       echo "条件不通过"
       #打印当前所在目录
       echo $path `pwd`
       #执行python脚本(不带函数的)
       python pppp.py
    fi
    
    
    #!/bin/bash
    a=$(grep -c "验证通过" /home/work/test/index.html)
    echo "$a"
    b=20
    if [ $a -gt $b ]
    then
      echo "$a 条件通过"
    else
       echo "条件不通过"
       cd /home/work
       echo $path `pwd`
       #调用函数(带参数)
       checkresult=`python -c 'import ppp; print ppp.wei("chenwei_zai_dalan")'`
       echo $checkresult
    fi

    相关连接:

    https://blog.csdn.net/qq_36119192/article/details/82964713

    https://www.cnblogs.com/yinheyi/p/6648242.html

  • 相关阅读:
    base标签使用
    自定义cell的背景图(色)
    如何在iphone 4上使用高分图
    转iphone元素的尺寸
    mac下显示隐藏文件的方法
    转iphone如何调试EXC_BAD_ACCESS
    iphone sleep方法
    uitable view自带的动画效果
    iphone 直接中转到appstore
    uitableview 默认选中第一行
  • 原文地址:https://www.cnblogs.com/chen-xia/p/13916509.html
Copyright © 2020-2023  润新知