• 第17篇 shell编程基础(2)


    shell study

    1、Exit Status
    If the command executed successfully (or true), the value of $? is zero. If the command failed for some reason, $? will contain a positive integer between 1 and 255, inclusive.A failed command usually returns 1.

    2、Testing an Expression
    The test command evaluates many kinds of expressions,from file properties to integers to strings.
    1)file tests,A file’s existence can be tested with -e (or the nonstandard -a). The type of file can be checked with -f for a regular file, -d for a directory, and -h or -L for a symbolic link. for example:
    test -f /etc/fstab ## true if a regular file
    test -h /etc/rc.local ## true if a symbolic link
    [ -x "$HOME/bin/hw" ] ## true if you can execute the file
    [[ -s $HOME/bin/hw ]] ## true if the file exists and is not empty

    2)Comparisons between integers use the -eq, -ne, -gt,-lt,-ge,and -le operators.
    below is a example:
    $ test 1 -eq 1
    $ echo $?

    3) String Tests,The = operator tests for equality, in other words,whether they are identical;
    != tests for inequality.The -z and -n operators return successfully if their arguments are empty or nonempty.
    here ara some example:
    test "$a" = "$b"
    [ "$q" != "$b" ]

    $ [ -z "" ]
    $ echo $?
    0 #判空


    $ test -n ""
    $ echo $?
    1

    3、[[ ... ]]: Evaluate an Expression
    4、(( ... )): Evaluate an Arithmetic Expression
    5、Conditional Execution
    example:
    read name
    if [[ -z $name ]]
    then
    echo "No name entered" >&2
    exit 1 ## Set a failed return code
    fi

    read number
    if (( number > 10 ))
    then
    printf "%d is too big " "$number" >&2
    exit 1
    else
    printf "You entered %d " "$number"
    fi

    6、Conditional Operators, && and ||
    Lists containing the AND and OR conditional operators are evaluated from left to right. A
    command following the AND operator (&&) is executed if the previous command is
    successful. The part following the OR operator (||) is executed if the previous command
    fails.

    7、case
    语法如下:
    case WORD in
    PATTERN) COMMANDS ;;
    PATTERN) COMMANDS ;; ## optional
    esac

    8、Loop
    1)while语法:
    while <list>
    do
    <list>
    done
    实例:
    n=1
    while [ $n -le 10 ]
    do
    echo "$n"
    n=$(( $n + 1 ))
    done

    2)util 很少用,跟while刚好相反(循环会条件fails),实例如下,
    n=1
    until [ $n -gt 10 ]
    do
    echo "$n"
    n=$(( $n + 1 ))
    done

    3)for,实例:
    for (( n=1; n<=10; ++n ))
    do
    echo "$n"
    done

    4)break
    do
    read x
    [ -z "$x" ] && break
    done

    5)continue
    for n in {1..9} ## See Brace expansion in Chapter 4
    do
    x=$RANDOM
    [ $x -le 20000 ] && continue
    echo "n=$n x=$x"
    done

    本博客的所有博文,大都来自自己的工作实践。希望对大家有用,欢迎大家交流和学习。 我的新站:www.huishougo.com
  • 相关阅读:
    maven使用
    Java生成XML
    Raphael使用
    pybombs 安装
    Archlinux 踩坑实录
    Office2016 转换零售版为VOL版
    神奇的linux发行版 tiny core linux
    Cubietruck查看CPU及硬盘温度
    在Cubieboard上关闭irqbalance服务避免内存泄漏
    cubieboard中使用py-kms与dnsmasq搭建局域网内全自动KMS激活环境
  • 原文地址:https://www.cnblogs.com/zhouqingda/p/5205613.html
Copyright © 2020-2023  润新知