zoukankan      html  css  js  c++  java
  • shell test [ ]

    http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#settings_wildcard
    http://www.linuxde.net/2013/06/14634.html
    http://man.linuxde.net/test
    http://blog.chinaunix.net/uid-24780853-id-2578709.html


    [root@server1 ~]# man test TEST(1) User Commands TEST(1) NAME test - check file types and compare values SYNOPSIS test EXPRESSION test [ EXPRESSION ] [ ] [ OPTION DESCRIPTION Exit with the status determined by EXPRESSION. --help display this help and exit --version output version information and exit An omitted EXPRESSION defaults to false.
    Otherwise, EXPRESSION is true or false and sets exit status. It is one of: ( EXPRESSION ) EXPRESSION is true ! EXPRESSION EXPRESSION is false

    if 执行的选择与 $?返回值有关
    test ==== [ ]

    [root@server1 kk]# test 2
    [root@server1 kk]# echo $?
    0

    [root@server1 kk]# test ""
    [root@server1 kk]# echo $?
    1

    [root@server1 kk]# test kkkkkkkk
    [root@server1 kk]# echo $?
    0

    [root@server1 ~]# unset a
    [root@server1 ~]# [ "$a" == "" ]
    [root@server1 ~]# echo $?
    0

    [root@server1 ~]# test $a
    [root@server1 ~]# echo $?
    1

    ------------------------------------------------------------------

    [root@server1 ~]# test
    [root@server1 ~]# echo $?
    1

    [root@server1 ~]# [ ]
    [root@server1 ~]# echo $?
    1

    --------------------------------------------------------------------------

    (ls) 与 $(ls) 区别:

    (ls)在子shell中执行ls命令,屏幕显示结果

    a=$(ls):把ls执行命令结果,即输出值放到变量a中,重定向输出到a(不包括错误输出)

    [root@server1 kk]# (ls)
    mm
    [root@server1 kk]# echo $?
    0

    [root@server1 kk]# (ls tt)
    ls: 无法访问tt: 没有那个文件或目录
    [root@server1 kk]# echo $?
    2

    [root@server1 kk]# ! ls
    mm
    [root@server1 kk]# echo $?
    1

    说明"!":作用是$?取反

    -----------------------------------------------------------------------------------------------------------------------------

    -------------------------------------------------------------------------------------

    [root@server1 kk]# true
    [root@server1 kk]# echo $?
    0
    [root@server1 kk]# false
    [root@server1 kk]# echo $?
    1

    --------------------------------------------------------------------------

    -a: 
    -o: EXPRESSION1
    -a EXPRESSION2 both EXPRESSION1 and EXPRESSION2 are true EXPRESSION1 -o EXPRESSION2 either EXPRESSION1 or EXPRESSION2 is true
    --------------------------------------------------------------------------------------- 字符串:
    -n STRING the length of STRING is nonzero STRING equivalent to -n STRING -z STRING the length of STRING is zero STRING1 = STRING2 the strings are equal STRING1 != STRING2 the strings are not equal


    [root@server1 kk]# [ "a" > "ABC" ]
    [root@server1 kk]# echo $?
    0


    ------------------------------------------------------------------------------------------------------------ 整型: INTEGER1
    -eq INTEGER2 INTEGER1 is equal to INTEGER2 INTEGER1 -ge INTEGER2 INTEGER1 is greater than or equal to INTEGER2 INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 INTEGER1 -le INTEGER2 INTEGER1 is less than or equal to INTEGER2 INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 INTEGER1 -ne INTEGER2 INTEGER1 is not equal to INTEGER2


    echo $((2>1))    

    
    

    1

    
    

    echo $((2==1))  

    
    

    0

    
    

    echo $((2<1))  

    
    

    0

    
    

    a=$(( 2+1 )) 
    b=$(( 2-1 )) 
    c=$(( 2*1 )) 
    d=$(( 2/1 ))


    --------------------------------------------------------------------------------------------------------------------------------- 文件: FILE1
    -ef FILE2 FILE1 and FILE2 have the same device and inode numbers FILE1 -nt FILE2 FILE1 is newer (modification date) than FILE2 FILE1 -ot FILE2 FILE1 is older than FILE2 -b FILE FILE exists and is block special -c FILE FILE exists and is character special -d FILE FILE exists and is a directory -e FILE FILE exists -f FILE FILE exists and is a regular file -g FILE FILE exists and is set-group-ID -G FILE FILE exists and is owned by the effective group ID -h FILE FILE exists and is a symbolic link (same as -L) -k FILE FILE exists and has its sticky bit set -L FILE FILE exists and is a symbolic link (same as -h) -O FILE FILE exists and is owned by the effective user ID -p FILE FILE exists and is a named pipe -r FILE FILE exists and read permission is granted -s FILE FILE exists and has a size greater than zero -S FILE FILE exists and is a socket -t FD file descriptor FD is opened on a terminal -u FILE FILE exists and its set-user-ID bit is set -w FILE FILE exists and write permission is granted -x FILE FILE exists and execute (or search) permission is granted
    ------------------------------------------------------------------------------------------------------------------------------- Except
    for -h and -L, all FILE-related tests dereference symbolic links. Beware that parentheses need to be escaped (e.g., by backslashes) for shells. INTEGER may also be -l STRING, which evaluates to the length of STRING. NOTE: [ honors the --help and --version options, but test does not. test treats each of those as it treats any other nonempty STRING. NOTE: your shell may have its own version of test and/or [, which usually supersedes the version described here. Please refer to your shell’s documentation for details about the options it supports.




     

  • 相关阅读:
    记一次小团队Git实践(下)
    记一次小团队Git实践(中)
    记一次小团队Git实践(上)
    Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
    Android学习系列(43)--使用事件总线框架EventBus和Otto
    Android拓展系列(11)--打造Windows下便携的Android源码阅读环境
    Android学习系列(40)--Android主题和样式之系统篇(下)
    Android学习系列(42)--Android Studio实战技巧
    Android学习系列(41)--Android Studio简单使用
    Android学习系列(39)--Android主题和样式之系统篇(上)
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5557277.html
Copyright © 2011-2022 走看看