一 条件选择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. (十四)角色管理(Ztree插件的基本使用)

    1. 建表 角色表 菜单表 角色-菜单(这个表中的role_id和menuu_id都不能被设置为主键,否则当插入一个新角色的时候,一个角色可能拥有多个菜单(role_id重复),一个菜单可能被多个角色 ...

  2. 查准率(precision)和查全率(recall)

    一.理解查准率(precision)& 查全率(recall) 我们在平时常用到的模型评估指标是精度(accuracy)和错误率(error rate),错误率是:分类错误的样本数站样本总数的 ...

  3. 十一、微信小程序-var、let、const用法详解

    let命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ...

  4. 【转】[STL]vector和deque的内存释放(clear)

    vector的clear成员函数可以清除vector中的元素,使其大小减至0.但它却不能减小vector占用的内存. [cpp] view plain copy int main() { vector ...

  5. C# 循环中 直接索引 VS 缓存索引 性能测试

    using System; namespace TestCSharp { class MainClass { public class t1 { public b1 b = new b1(); } p ...

  6. 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用

    国人在表述"大材小用"这个场景时,总喜欢用一些实物来类比,比如:高射炮打蚊子. 英国QF 3.7英寸(94mm)高射炮,战斗全重超过9.3吨,全长近5米,最大射程约18公里,最大射 ...

  7. zookeeper:1

    分布式环境的特点 分布性:多台机器位置不同,但是相互协同做某一件事情. 并发性:程序运行过程中,并发性操作是很长见的.比如:同一个分布式系统中的多个节点,同时访问一个共享资源.(数据库,分布式存储) ...

  8. MyEclipse设置java文件每行字符数

    window->preferences->java->code style->formatter->edit->line wrapping->maximum ...

  9. 特殊权限 - SUID GUID STICKYBIT

    ◆ SUID ( Set User ID ) Linux里,用户的ID被称作UID.在实际生产中,可能需要临时借用别的用户执行程序,因此需要能够临时变更自己UID的机能叫做SUID.借助SUID权限, ...

  10. 凌乱的yyy / 线段覆盖(贪心)

    https://www.luogu.org/problemnew/show/P1803  题目链接 贪心,选择结束时间为关键字排序,相同时开始时间大的在前,然后for一遍比较就好了 #include& ...