• Shell脚本


    学习资料:  http://c.biancheng.net/cpp/view/6995.html

    IF:
    1、基本语法:
    if [ command ]; then
    符合该条件执行的语句
    fi
    2、扩展语法:
    if [ command ];then
    符合该条件执行的语句
    elif [ command ];then
    符合该条件执行的语句
    else
    符合该条件执行的语句
    fi


    好家伙:  &>/dev/null 是指标准输出和错误输出都输出到/dev/null上,而不在界面上显示;

    1. $ command > /dev/null 2>&1 (全部不输出)


    test:

    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

    数值测试

    参数说明
    -eq等于则为真
    -ne不等于则为真
    -gt大于则为真
    -ge大于等于则为真
    -lt小于则为真
    -le小于等于则为真

    例如:

    复制代码代码如下:

    num1=100
    num2=100
    if test $[num1] -eq $[num2]
    then
        echo 'The two numbers are equal!'
    else
        echo 'The two numbers are not equal!'
    fi


    输出:
    The two numbers are equal!


    字符串测试

    参数说明
    =等于则为真
    !=不相等则为真
    -z 字符串字符串长度伪则为真(字符串长度为0)
    -n 字符串字符串长度不伪则为真(字符串长度不为0)

    文件测试

    参数说明
    -e 文件名如果文件存在则为真
    -r 文件名如果文件存在且可读则为真
    -w 文件名如果文件存在且可写则为真
    -x 文件名如果文件存在且可执行则为真
    -s 文件名如果文件存在且至少有一个字符则为真
    -d 文件名如果文件存在且为目录则为真
    -f 文件名如果文件存在且为普通文件则为真
    -c 文件名如果文件存在且为字符型特殊文件则为真
    -b 文件名如果文件存在且为块特殊文件则为真


    for: 
    第一种:
    1. #!/bin/bash  
    2.   
    3. for((i=1;i<10;i++))  
    4. do  
    5.     echo $i  
    6. done  

    第二种:
    1. #!/bin/bash  
    2. for i in `seq 10`  
    3. do  
    4.     echo $i  
    5. done  


    ((a=$a+1))
    这个是规定啊.执行算数运算.要加(())
    shell的for循环也是两个双括号
    也可以这么写
    &a=[ &a +1]



    exec的重定向

      先上我们进如/dev/fd/目录下看一下:

    root@localhost:~/test#cd /dev/fd

    root@localhost:/dev/fd#ls

    0  1  2  255

    默认会有这四个项:0是标准输入,默认是键盘。

    1是标准输出,默认是屏幕/dev/tty

    2是标准错误,默认也是屏幕

    255

    当我们执行exec 3>test时:

    root@localhost:/dev/fd#exec 3>/root/test/test 

    root@localhost:/dev/fd#ls

    0  1  2  255  3

    root@localhost:/dev/fd#

    看到了吧,多了个3,也就是又增加了一个设备,这里也可以体会下linux设备即文件的理念。这时候fd3就相当于一个管道了,重定向到fd3中的文件会被写在test中。关闭这个重定向可以用exec 3>&-

    root@localhost:/dev/fd#who >&3

    root@localhost:/dev/fd#ls >&3

    root@localhost:/dev/fd#exec 3>&-

    root@localhost:/dev/fd#cat /root/test/te

    test  text  

    root@localhost:/dev/fd#cat /root/test/test 

    root     tty1         2010-11-16 01:13

    root     pts/0        2010-11-15 22:01 (192.168.0.1)

    root     pts/2        2010-11-16 01:02 (192.168.0.1)

    0

    1

    2

    255

    3






  • 相关阅读:
    MQTT协议的简单介绍和服务器的安装
    Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
    gradle 命令
    git 命令学习
    PHP、JAVA、C#、Object-C 通用的DES加密
    JS中树形对象与数组之间的相互转换
    Javascript中的类型转换
    Javascript中的基本数据类型,如何判断数据类型,作用域链的理解
    前端面试题集锦(二)之CSS部分
    前端面试题集锦(一)之HTML部分
  • 原文地址:https://www.cnblogs.com/tangbinghaochi/p/6296451.html
Copyright © 2020-2023  润新知