zoukankan      html  css  js  c++  java
  • Shell 脚本基本操作练习

    这里主要是熟悉了shell的基本操作,包括变量赋值引用修改、函数的使用、信号的获取及一些判断方法等,具体详见代码:

    #!/bin/sh
    
    str="Hello World !"
    echo "${str}aha"
    
    #''
    echo '$str'
    
    #file name
    echo "the name of this shell script is $0"
    
    #first parameter , $1---$N
    echo "the first parameter is $1"
    
    #all of the parameter
    echo "all of the parameter is $*"
    
    #num of the parameter
    echo "the num of the parameter is $#"
    
    #PID of this process
    echo "this running pid is $$"
    
    #the return value of the front one 
    echo "return value of the front one is $?"
    
    #the reference of the return val
    echo "the current directory is "`pwd`
    
    #-eq ==
    str=5
    str2=5
    if [ "${str}" -eq "${str2}" ] ;then echo "$str equal $str2"
    else echo "no equal"
    fi
    
    #-ge >=
    str=5
    str2=10
    if [ "$str2" -ge "$str" ];then echo "$str2 >= $str"
    else echo "no ge"
    fi
    
    #-gt > ; -le <= ; -ne != ; = ==; != != ; 
    
    #str no null
    if [ "$str" ] ; then echo "$str is not null"
    else echo "null"
    fi
    
    #-n str len of str > 0
    if [ -n "$str" ] ; then echo "$str len > 0"
    else echo "len < 0"
    fi
    
    #-z str len of str == 0
    
    #dir
    filename="./test_dir"
    if [ -d $filename ]; then echo "$filename is dir"
    else echo "$filename is not dir"
    fi
    
    #file
    filename="./test_dir"
    if [ -f $filename ]; then echo "$filename is file"
    else echo "$filename is not file"
    fi
    
    #-r file : is read
    #-s file : len of file > 0
    #-w file : is write
    #-x file : is run
    #
    
    #case switch
    str=5
    
    case $str in
    1) echo "$str is 1"
    ;;
    2) echo "$str is 2"
    ;;
    5) echo "$str is 5"
    ;;
    *)echo "unknow val"
    esac
    
    
    #fun
    add(){
            local temp;
            temp=`expr $1 + $2`
            sum=`expr $temp + $3`
            return $sum
    }
    
    #more information about expr , access http://www.cnblogs.com/kelin1314/archive/2011/01/11/1933019.html
    
    echo "we will use function add 3+8+10"
    add 3 8 10
    echo "the sum val is $?"
    
    #trap : catch the signal(SIGHUP SIGINT SIGQUIT SIGKILL SIGTERM)
    
    trap catch_signal INT
    catch_signal(){
            echo "I catch the SIGINT !!!"
            sleep 1
    }
    
    for i in 6 5 4 3 2 1;do
    echo "$i seconds until system failure , you can use CTRL+C ~"
    sleep 1
    done
    echo "system failure"

    运行结果如下:

    tiger@ubuntu:/mnt/hgfs/e/Lessons/MyExercise/UtilLibs/SHELL$ ./test_shell.sh   
    Hello World !aha
    $str
    the name of this shell script is ./test_shell.sh
    the first parameter is 
    all of the parameter is 
    the num of the parameter is 0
    this running pid is 7736
    return value of the front one is 0
    the current directory is /mnt/hgfs/e/Lessons/MyExercise/UtilLibs/SHELL
    5 equal 5
    10 >= 5
    5 is not null
    5 len > 0
    ./test_dir is dir
    ./test_dir is not file
    5 is 5
    we will use function add 3+8+10
    the sum val is 21
    6 seconds until system failure , you can use CTRL+C ~
    5 seconds until system failure , you can use CTRL+C ~
    ^CI catch the SIGINT !!!
    4 seconds until system failure , you can use CTRL+C ~
    ^CI catch the SIGINT !!!
    3 seconds until system failure , you can use CTRL+C ~
    ^CI catch the SIGINT !!!
    2 seconds until system failure , you can use CTRL+C ~
    1 seconds until system failure , you can use CTRL+C ~
    system failure
    tiger@ubuntu:/mnt/hgfs/e/Lessons/MyExercise/UtilLibs/SHELL$ 

    只是出于熟悉shell的目的,没有深究,欢迎拍砖!

  • 相关阅读:
    Vue无缝滚动
    vue+Axios 实现路由拦截和登录拦截
    添加删除数组元素的方法
    日期时间相关
    Vue源码编译过程
    new关键字执行过程
    预解析
    echarts图表数据为空的时候不显示气泡
    arguments使用
    log4net介绍很全面
  • 原文地址:https://www.cnblogs.com/xiaowenhu/p/3200820.html
Copyright © 2011-2022 走看看