一、echo

1.1、echo命令用法

格式:echo [参数] [字符串]

常用参数

echo -n 表示输出不换行

echo -e 输出转义字符,将转义后的内容输出到屏幕上,后面可以添加很多转义符

\b相当于退格键,但前提是“\b”后存在字符"\b"表示删除前一个字符"\b\b"表示删除前两个字符

\c不换行输出。后面无字符时相当于 echo -n"\c"后有字符时,将不被输出

\n换行,但是换行后的新行从“\n”处开始另起一行\f换行,但是换行后的新行的开头位置连接着上一行的行尾

\v与\f相同
\t转义后表示插入tab,即横向制表符\r光标移至行首,但不换行,相当于使用“\r”以后的数字覆盖之前相等长度的字符
\\表示插入“\”本身

1.2、echo截取字符

例如a=$(echo "a,b,c,d")
1,echo ${a%,*}
得到的结果为:a,b,c
解析:从最后倒数到最短的匹配部分(用%)后面的逗号的地方被删除
2,echo ${a%%,*}
得到的结果为:a
解析:从最后倒数到最长的匹配部分(用%%)后面的逗号的地方被删除
3,echo ${a#*,}
得到的结果为:b,c,d
解析:从开头到最短的匹配部分(用#)后面的逗号的地方被删除
4,echo ${a##*,}
得到的结果为:d
解析:从开头到最长的匹配部分(用##)后面的逗号的地方被删除

二、for语句

读取不同的变量值,用来逐个执行同一组命令

for 变量名 in 取值列表
do
命令序列
done

2.1、实例

要求:批量添加几个用户,初始密码为123456,验证脚本

创建用户名文件

创建脚本文件

运行脚本

三、while语句

重复测试某个条件,只要条件成立则反复执行

while 条件测试操作
do
命令序列
done

3.1、实例

要求:用户名以a开头,按顺序进行编号,一共添加20个用户,初始密码设置为123456

创建脚本文件

运行脚本

查看用户

四、until语句

重复测试某个条件,只要条件不成立则反复执行

until 条件测试操作
do
命令序列
done

4.2实例

要求:计算1-50的整数和

创建脚本文件

运行脚本

关于shell脚本——echo、for语句、while语句、until语句的更多相关文章

  1. Shell脚本应用(for、while循环语句和case分支语句)

    1.for:读取不同的变量值,逐个执行同一组命令,直到取值完毕退出,变量值以空格分隔 语法: for  变量值  in  取值列表 do 命令序列 done 2.while:重复测试某个条件,成立则执 ...

  2. shell脚本进阶之条件测试与条件语句

       接着上篇博客,今天整理一下关于条件测试和条件语句方面的知识. shell脚本进阶之条件测试    在编写shell脚本时,经常需要对一些条件进行判断,可以使用测试命令test辅助完成测试过程.t ...

  3. shell 脚本之if、for、while语句

    (1)if语句 root@ubuntu:/mnt/shared/shellbox/shellif# cat shellif.sh #!/bin/bash #推断字符串 if [ "$1&qu ...

  4. shell脚本--echo和printf打印输出

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 注:本文关于引号等特殊符号的处理仅仅只是几个例子,想要彻底搞明 ...

  5. shell脚本基础 数值运算 判断 及if语句

    数值运算 整数运算[三种,随便掌握一种即可]expr 数字 运算符 数字 [root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*.%是取余,余数只有0 1 ...

  6. shell脚本双引号、大括号、if语句注意事项

    1.双引号的问题 变量用双引号括起来的意义 如果变量不用双引号括起来,比如echo $a,那么隐含的意义就是,把$a变量的字符串,按照空格.制表符.换行符等符号来分割开.然后把这些分割后的每一项再按 ...

  7. 用shell脚本创建sqlite表并添加sql语句--通用

    重要使用的是EOF的功能,亲测和!功能一致:下面是测试代码 #!/bin/bash val=`ls`for v in ${val} do if [ ${v} == "test.db" ...

  8. Linux shell 脚本(一)

    一.初识脚本 shell:一类介于系统内核与用户之间的解释程序.脚本:一类使用特定语言,按预设顺序执行的文件批处理.宏.解释型程序创建shell脚本:理清任务过程--整理执行语句--完善文件结构1.任 ...

  9. 编写shell脚本需要特别关注的注意点

    shell脚本中的条件判断句式 1. if [ condition ];then statement fi 2. If [ condition ];then statement elif [ cond ...

随机推荐

  1. 谁知道百会CRM跟Zoho是一家公司吗?

    说到ZohoCRM,无论是搜索引擎还是信息网站,总会有无数的身影.很多人不知道这两家公司的关系,甚至认为百会和Zoho是一家公司.那么,百会CRM和Zoho属于同一类公司吗?它们之间有什么关系?今天小 ...

  2. 谈谈Java事务

    事务具基本特征(ACID) ① Atomi(原子性):事务中包含的操作被看做一个整,要么完全部成功,要么全部失败. ② Consistency(一致性):事务在完成时,必须是所有的数据都保持一致状态, ...

  3. WPF教程三:学习Data Binding把思想由事件驱动转变为数据驱动

    之前大家写代码都喜欢用事件驱动,比如说鼠标输入的click事件.初始化的内容全部放在窗体加载完毕的load事件,等等,里面包含了大量的由事件触发后的业务处理代码.导致了UI和业务逻辑高度耦合在一个地方 ...

  4. ES6 箭头函数你正确使用了吗

    ES6 箭头函数你正确使用了吗 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在ES6中允许使用"箭头&quo ...

  5. netcore3.1 + vue (前后端分离)Excel导入

    1.前端(vue)代码 2.公共类ExcelHelper 3.后端(netcore)代码 思路:导入类似于上传,将excel上传后将流转换为数据 1.前端(Vue)代码 这里使用的是ElementUI ...

  6. C++11运算符重载详解与向量类重载实例(<<,>>,+,-,*等)

    1. C++运算符重载介绍 C ++ 中预定义的运算符的操作对象只能是基本数据类型.但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作.这时就必须在C ++ 中重新定义这些运算符,赋予已 ...

  7. ESP32非易失性存储整型数据笔记

    基于ESP-IDF4.1 1 #include <stdio.h> 2 #include "freertos/FreeRTOS.h" 3 #include " ...

  8. 深入理解Java多线程——线程池

    目录 为什么需要线程池 定义 ThreadPoolExecutor 工作队列workQueue 不同的线程池 Executor 线程池的工作原理 线程池生命周期 线程池增长策略 线程池大小的设置 线程 ...

  9. css--filter(滤镜) 属性

    前言 前段时间找工作面试官问到一个问题,你如何将一个网页整体置灰?面试遇到这样的问题,一下束手无策,之前没有接触过这样的需求,因此没有回答上来,面试结束我才知道了这是考查对 CSS3 的新属性的了解. ...

  10. CTF-Streamgame2-writeup

    Streamgame2 题目信息: 附件: streamgame2.py from flag import flag assert flag.startswith("flag{") ...