zoukankan      html  css  js  c++  java
  • [Shell]常用语法

    赋值

    FILE=$1  //=两边不能有空格
    echo $FILE

    逻辑判断

    表达式
    1if [ expression ]; then ... fi //[]两边必须有空格
    2if [[ expression ]]; then ... fi
    3if expression1 -o expression2; then
    elif expression; then
    else
    fi
    
    组合判断条件
    -a: and
    -o: or
    !: 非
    
    命令间逻辑关系
    &&  || //和其他语言意义一致
    
    eg1: 判断a大于b并且小于c
    1if (( a > b )) && (( a < c ))
    2if [[ $a > $b ]] && [[ $a < $c ]]
    3if [ $a -gt $b -a $a -lt $c ]
    整数比较
    -eq ==
    -ne !=
    -gt >
    -ge >=
    -lt <
    -le <=
       
    文件测试
    -z string 字符是否为空,空为真,非空为假
    -n string 是否为不空,空为假 非空为真
    -e FILE 文件是否存在
    -f file 文件是否为普通文件
    -d file 是否为目录
    -r file 文件对当前用户是否可读
    -w file 文件对当前用户是否可写
    -x file 文件对当前用户是否可执行
    -z 是否为空  为空则为真
    -a 是否不空  不空为真

    循环

    # for
    for
    ((i=1;i<=10;i++))
    do
    sth
    done
    for i in $(seq 1 10) for i in {1..10} awk 'BEGIN{for(i=1; i<=10; i++) print i}' for i in `ls`; for i in f1 f2 f3 ; list="GOD always love you!" for i in $list; for file in /bin/*;

    do
    echo $line
    done

    # while
    while true
    do
    sth
    done

    #switch
    case $char in
    [A-Z][a-z])
    sth
    ;;
    [0-9])
    sth
    ;;
    *)
    sth
    esac

    文本读写

    for line in `cat filename`
    do
     echo $line
    done
    for line in $(cat filename)    
    do
     echo $line
    done
    while read -r line   #-r选项保证读入的内容是原始的内容,意味着反斜杠转义的行为不会发生
    do
     echo $line
    done < filename

     远程访问

    ssh faith@$ip "grep 'DecodeBlob Error' /data/datac20181106/GameServer*/ERROR/*.log

    Note

    $?  上个命令执行成功,则为0,否则为1-255间的一个
    $#  传参个数
    $n  参数值
    ((exp))  exp可以不加$引用
    set -e   发生错误立刻退出
    sh -n ***.sh  检查shell语法
    //判断上个命令执行是否成功
    raise() {
        if [ $? != 0 ]; then echo "$1"; exit 1 ;fi
    }
  • 相关阅读:
    Python NameError: name 'include' is not defined [closed]
    Python3 venv 创建虚拟环境
    python编程:从入门到实践读书笔记(一)
    kafka(2.2.1)(kerberos+LDAP+Sentry)访问使用
    实现Base64解码和命令分发器
    装饰器器应用及用途
    __slots__和运算符重载中的反向方法
    python插件化开发
    python分发包管理
    SocketServer模块
  • 原文地址:https://www.cnblogs.com/faithfu/p/9914253.html
Copyright © 2011-2022 走看看