zoukankan      html  css  js  c++  java
  • bash 基础之五 条件测试、read

    一 条件选择if语句

    • 顺序执行:逐条运行;
    • 选择执行:
      • 代码有一个分支:条件满足时才会执行;
      • 两个或以上的分支:只会执行其中一个满足条件的分支;
    • 循环执行:
      代码片断(循环体)要执行0、1或多个来回;
    选择执行:
    # 单分支的if语句:
    if  测试条件;then
        条件为真时分支代码
    fi
    
    # 双分支的if语句:
    if 判断条件; then
        条件为真的分支代码
    else
        条件为假的分支代码
    fi
    
    
    示例:通过参数传递一个用户名给脚本,此用户不存时,则添加之; #!/bin/bash if [ $# -lt 1 ] ;then ehco "at lease one username" fi if id $1 &>/dev/dull ;then #判断语句就是命令,自身不是命令而只是表达式的时候必须加上[] ,但凡自己本身就是命令的时候不需要加[] echo "user $1 exits" else useradd $1 [ $? -eq 0 ] && echo "$1" | passwd --stdin $1 &>/dev/dell echo "user $1 was finished" fi

    二、read 用户交互

    使用read来把输入值分配给一个或多个shell变量

    当给出的字符串不够用时,最后一个变量没有被赋值;当给出的字符串多时,多出来的全部给最后一个变量。

    -p 指定要显示的提示
    -s 静默输入,一般用于密码
    -n  N 指定输入的字符长度N
    -d ‘字符’ 输入结束符
    -t N TIMEOUT为N秒

    echo a b c > file1 
    read x y z <file1
    echo $x
    a
    echo $y
    b
    echo $z
    c
    也可以
    read x y z <<<  "i j k"
    #!/bin/bash
    read -p  "please input your name: " name
    echo your name is $name
    
    #!/bin/bash
    read -p  "please input your name: " name
    read -s -p "please input your passwd: " passwd
    echo your name is $name
    echo your passwd is $passwd

    实验:鸡兔同笼;输入总的头数和总的脚数,算出鸡、兔分别有几只。

    #!/bin/bash
    read -p "please input heads num: " H
    read -p "please input feets num: " F
    C=$[(4*H-F)/2]
    R=$[(F-2*H)/2]
    echo "the chicken num is $C"
    echo "the rabbir num is $R"
  • 相关阅读:
    chapter4 quantum circuits
    《用广义CNOT门产生质数幂维的图态》
    幺正矩阵的分解
    SpringCloud学习----阳哥(五)
    SpringCloud学习----阳哥(四)
    SpringCloud学习----阳哥(三)
    SpringCloud学习----阳哥(二)
    SpringCloud学习----阳哥(一)
    IDEA插件介绍(一) -RestfulToolkit(接口自测工具)
    常用SQL语句和XML文件格式
  • 原文地址:https://www.cnblogs.com/liuzhiyun/p/11334080.html
Copyright © 2011-2022 走看看