zoukankan      html  css  js  c++  java
  • linux系统shell基础知识入门二

    条件判断语句

    test或[],这两是等价的。但用[]这种可能看起来更简洁
    必须在[符号和检查条件之间留出空格,而test命令之后也总是应该有一个空格
    如果要把test 和then 放一行上,那么必须在test语句和then之间加上分隔符“ ; "

    第1种
    if test -f /tmp/log.log; then
      echo "Yes"
    else
       echo "No"
    fi
    第2种
    if [ -f /tmp/log.log ]; then
     echo "log exists"
    fi
    
    字符串比较 结果
    str1 = str2 字符串相同为真
    str1 != str2 字符串不相同为真
    -n string 字符串不为空时,结果为真
    -z string 字符串为null(空串),不能值为null的串。结果为真
    算术比较 结果
    exp1 -eq exp2 两表达式相等,结果为真
    exp1 -ne exp2 两表达式不等,结果为真
    exp1 -gt exp2 exp1大于exp2,结果为真
    exp1 -ge exp2 exp1大于等于exp2,结果为真
    exp1 -lt exp2 exp1小于exp2,结果为真
    exp1 -le exp2 exp1小于等于exp2,结果为真
    ! exp1 exp1为假,则结果为真,反之亦然
    文件条件测试 结果
    -d file 文件是一个目录,结果为真
    -e file 文件存在为真,目前更多使用-f file
    -f file 文件是普通文件为真
    -g file 文件的set-group-id位被设置为真
    -r file 文件可读为真
    -s file 文件大小不为0为真
    -u file 文件的set-user-id位被设置为真
    -w file 文件
    -x file 文件可执行为真

    控制结构(if)

    if 条件
    then
       语句
    else
      语句
    fi  
    
    或使用elif多重选择
    if 条件
    then
       语句
    elif 条件
       语句
    else
      语句
    fi 
    
    num=1
    if [ "$num" -eq 1 ]; then
      echo 1
    elif [ "$num" -eq 2 ]; then
      echo 2
    else
      echo 3
    fi
    exit 0
    

    for语句

    for variable in values;
    do
     语句
    done
    
    #! /bin/bash
    for i in $(ls /tmp);do
      ls '/tmp/'$i
    done
    exit 0
    

    while语句

    while 条件 do;
    语句
    done
    

    until语句

    和whle相似,不过它是反复执行直到条件为真,而不是条件为真是反复执行

    until 条件 
    do
    语句
    done
    

    case语句

    每个模式行都以分号;;结尾

    case variable in
     parttern [| parttern] ...) 语句;;
    esac
    
    
  • 相关阅读:
    668. Kth Smallest Number in Multiplication Table
    658. Find K Closest Elements
    483. Smallest Good Base
    475. Heaters
    454. 4Sum II
    441. Arranging Coins
    436. Find Right Interval
    410. Split Array Largest Sum
    392. Is Subsequence
    378. Kth Smallest Element in a Sorted Matrix
  • 原文地址:https://www.cnblogs.com/smartrui/p/10317531.html
Copyright © 2011-2022 走看看