Shell 命令学习-02

2>&1


    /dev/null 表示空设备文件;
    可以把/dev/null 可以看作"黑洞". 它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到.
    0 表示stdin标准输入;
    1 表示stdout标准输出;
    2 表示stderr标准错误。    
    2>&1 的意思就是将标准错误重定向到标准输出
    eq:解读 ls ** >out.txt 2>&1
        上面相当于 ls ** 1>out.txt 2>&1
        执行 ls ** 如果产生标准输出(1),那么结果会到out.txt中去;如果产生错误输出(2),那么结果会到标准输出(1)中去,
        因为标准输出(1)是到out.txt中去的,所以错误输出(2)也会到out.txt 中去
    这么说来 ** &>/dev/null     应该等价于 ** >/dev/null 2>&1

    
$0


    当前脚本的文件名

 
$n


    传递给脚本或函数的参数。n 可以是1、2、3...任何一个参数,数字是几就表示第几个参数


$#


    传递给脚本或函数的参数的个数


$*


    传递给脚本或函数的所有参数


$@


    传递给脚本或函数的所有参数。
    被双引号包含时会与$*有所不同:"$*" 会将所有的参数作为一个整体,
    以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数


$?


    上个命令的退出状态或是函数的返回值


$$


    当前Shell进程的ID。对于Shell脚本来说就是这些脚本所在的进程ID


[] [[]]


    [] 是 test 命令的简写 。[command] 等价于 test command 
        必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错
        大于符号或小于符号必须要转义,否则会被理解成重定向
    [[]]是[ ]的针对数学比较表达式和字符串表达式的加强版
        
    

你可能感兴趣的:(linux)