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"
  • 相关阅读:
    Error: unable to load xmlsec-openssl library
    count(1)、count(*)与count(列名)的执行区别
    Linux下的压缩zip,解压缩unzip命令详解及实例
    linux centos 如何查看操作系统版本信息
    These dependencies were not found: *!!vue-style-loader!css-loader?
    Git如何永久删除某个重要文件文件或文件夹 (包括历史记录) 强制
    LDAP的filter查询详解
    详谈mysqldump数据导出的问题
    GO -- 遍历删除 数组 slice
    mjml强大&&灵活的邮件模版引擎
  • 原文地址:https://www.cnblogs.com/liuzhiyun/p/11334080.html
Copyright © 2011-2022 走看看