zoukankan      html  css  js  c++  java
  • shell-常用命令,重定向和文件包含

    shell的知识点并不多,这里简单介绍一下常用的一些东西

    常用命令

    echo

    • 显示普通字符串
    echo "test"
    
    • 显示转义字符
    echo ""test""
    
    • 显示变量
    echo "$key"
    
    • 显示换行
    echo -e "OK! 
    " # -e 开启转义
    
    • 显示不换行
    echo -e "OK! c" # -e 开启转义 c 不换行
    
    • 显示结果定向至文件
    echo "test" > myfile
    
    • 原样输出字符串,不进行转义或取变量(用单引号)
    echo '$name"'
    
    • 显示命令执行结果
    echo `date`
    

    printf

    命令的语法

    printf format-string [arguments...]
    

    test

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

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

    e.g.

    num1=100
    num2=100
    if test $[num1] -eq $[num2]
    then
        echo '两个数相等!'
    else
        echo '两个数不相等!'
    fi
    
    • 字符串测试
    参数 说明
    = 等于则为真
    != 不相等则为真
    -z 字符串 字符串的长度为零则为真
    -n 字符串 字符串的长度不为零则为真

    e.g.

    num1="ru1noob"
    num2="runoob"
    if test $num1 = $num2
    then
        echo '两个字符串相等!'
    else
        echo '两个字符串不相等!'
    fi
    
    • 文件测试
    参数 说明
    -e 文件名 如果文件存在则为真
    -r 文件名 如果文件存在且可读则为真
    -w 文件名 如果文件存在且可写则为真
    -x 文件名 如果文件存在且可执行则为真
    -s 文件名 如果文件存在且至少有一个字符则为真
    -d 文件名 如果文件存在且为目录则为真
    -f 文件名 如果文件存在且为普通文件则为真
    -c 文件名 如果文件存在且为字符型特殊文件则为真
    -b 文件名 如果文件存在且为块特殊文件则为真

    e.g.

    cd /bin
    if test -e ./bash
    then
        echo '文件已存在!'
    else
        echo '文件不存在!'
    fi
    
    cd /bin
    if [ -e ./bash ]
    then
        echo '文件已存在!'
    else
        echo '文件不存在!'
    fi
    

    函数

    函数的定义格式

    [ function ] funname [()]
    {
        action;
        [return int;]
    }
    

    注:function是可选参数,函数的返回值:如果没有return,那么将以最后一条命令的运行结果作为返回值
    如果前括号写在函数名后,一定要留有空格,如果函数名后带有(),此时可以不用空格
    e.g.

    funcTest() {
        echo "func test"
        echo $1
    }
    echo "func start"
    demoFun 2
    echo "func stop"
    

    函数返回值在调用该函数后通过$?来获得

    重定向

    命令 说明
    command > file 将输出重定向到 file
    command < file 将输入重定向到 file
    command >> file 将输出以追加的方式重定向到 file
    n > file 将文件描述符为 n 的文件重定向到 file
    n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file
    n >& m 将输出文件 m 和 n 合并
    n <& m 将输入文件 m 和 n 合并
    << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入

    将脚本内所有输出重定向到文件

    exec 1>file1 #标准输出
    exec 2>file2 #标准错误
    

    文件包含

    语法格式如下

    . filename   # 注意点号(.)和文件名中间有一空格
    

    source filename
    
  • 相关阅读:
    标准Gitlab命令行操作指导
    ssh登录巨慢加速验证
    ssh远程主机执行命令或脚本
    ssh创建与添加密钥开启免密登陆 免确认机器指纹参数
    linux免密传输文件 nc
    Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat
    Mysql 常用命令
    Redis 常用命令整理
    shell sed -i 指定内容追加.
    java 复制指定目录中的所有文件和文件夹到另一个指定文件夹中
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664687.html
Copyright © 2011-2022 走看看