一 条件选择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"

bash 基础之五 条件测试、read的更多相关文章

  1. linux基础之条件测试

    关键词: 数值测试 字符串测试 文件测试 测试命令有三种方式: test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]] 注意:EXPRESSION前后有空白字符 ...

  2. 【shell基础】条件测试

    例1 判断目录是否存在 #!/usr/bin/bash back_dir=/var/mysql_back if ! test -d $back_dir;then mkdir -p $back_dir ...

  3. Shell脚本的条件测试与比较

    Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试 ...

  4. bash Shell条件测试

    3种测试命令: test EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]]  注意:EXPRESSION前后必须有空白字符 bash的测试类型 数值测试: -eq: ...

  5. Shell编程-条件测试 | 基础篇

    什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...

  6. LinuxShell脚本编程基础4-条件测试与条件判断

    1.条件测试(test,[]) #! /bin/bash echo "请输入登陆的用户名:" read name1 if test "$name1" = &qu ...

  7. bash之条件测试if/else

    bash之条件测试:     if/then结构         条件测试(CONDITION):         test EXPRESSION:测试条件表达式正确否         [ EXPRE ...

  8. Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构

    一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...

  9. Linux:Day6(上) egrep、条件测试

    egrep及扩展的正则表达式: egrep = grep -E 扩展正则表达式的元字符: 或者:a | b 练习: 1.显示当前系统root.centos或user1用户的默认shell和UID: 2 ...

随机推荐

  1. Myatis之bind标签

    myBatis的bind的标签,一般的用法都是 <if test="name!= null and name!= '' "> <bind name="u ...

  2. (二)Spring框架之JDBC的基本使用(p6spy插件的使用)

    案例一: 用Spring IOC方式使用JDBC Test_2.java package jdbc; import java.lang.Thread.State; import java.sql.Co ...

  3. 每次开机都要按F1的解决办法

    买了个新的硬盘来装电脑,装操作系统时到微软官网下载了WIN10放在U盘里制作成系统安装盘,具体操作自己百度.装好了之后发现每次开机都要按一下F1,百度了很多都没用, 一次偶然的机会,我拆开了电脑主机硬 ...

  4. nodejs入门API之fs模块

    fs模块下的类与FS常量 fs模块下的主要方法 fs的Promise API与FileHandle类 一.fs模块下的类 1.1 fs.Dir:表示目录流的类,由 fs.opendir().fs.op ...

  5. H5各种头部meta标签功能大全

    <!DOCTYPE html>  H5标准声明,使用 HTML5 doctype,不区分大小写 <head lang=”en”> 标准的 lang 属性写法 <meta ...

  6. springboot 使用 @data 插件,减少代码量

    一.idea 安装 lombok 插件 二.重启 idea 三.添加依赖 <dependency> <groupId>org.projectlombok</groupId ...

  7. Window脚本学习笔记之定时关闭进程

     定时关闭进程, 从字面上即可看出操作分为两个步骤,即: 1,结合“任务计划程序”,定时. “计算机->管理->计划任务程序”,作用是让系统定时启动脚本文件(bat脚本). 2,结合“nt ...

  8. net.exe和net1.exe的区别&联系.

    system32文件夹下有一个net.exe和net1.exe,一般做渗透的时候,很多情况下管理员只知道删除net.exe而遗漏net1.exe,导致我们能继续do evil..... 一直没弄明白它 ...

  9. 关于python logging模块读文档的几个心得

    1. logger是分层级的,root是所有logger的祖先. 2. root这个logger在执行logging.warning() 等一系列方法和basicConfig()的时候才会被初始化ha ...

  10. 【SCOI2007】降雨量

    新人求助,降雨量那题本机AC提交WAWAWA…… 原题: 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小 ...