Shell编程之循环语句与echo的用法

一、echo用法

1. echo常用选项

echo -n 表示不换行输出

echo -e 输出转义字符,将转义后的内容输出到屏幕上

2. 常用的转义字符

常用的转义字符 说明
\b 转义后相当于按退格键(backspace),但前提是“\b”后面存在字符;“\b”表示删除前一个字符,“\b\b”表示删除前两个字符
\c 不换行输出。在“\c”后面不存在字符的情况下,作用相当于echo -n;但是当“\c”后面仍然存在字符时,“\c”后面的字符将不会被输出
\n 换行,被输出的字符从“\n”处开始另起一行
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾
\v 同/f
\t 转以后表示插入tab,即横向制表符
\r 光标移至行首,但不换行,相当于使用“\r”以后的字符覆盖“\r”之前同等长度的字符:但是当“\r”后面不存在任何字符时,“\r”前面的字符不会被覆盖
|表示插入“\”本身

3. 特殊符号%、#的用法

a=`echo '"1,2,3,4"`
echo ${a5,*} #从最后倒数到最短的匹配部分(用%)后面的逗号的地方被删除
1,2,3 echo ${a%%,*} #从最后倒数到最长的匹配部分(用%%)后面的逗号的地方都被删除
1 echo ${a#*,} #从开头到最短的匹配部分(用#)后面的逗号的地方呗删除
2,3,4 echo ${a##*,} #从开头到最长的匹配部分(用##)后面的逗号的地方呗删除

二、循环语句

1. for循环语句

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

graph LR
A[for 变量名 in 取值列表] -->|do| B[命令序列]
B -->|操作对象| C[取值列表]
B -->|取值用完| D[done结束循环]
C -->|循环操作| A
E[for循环流程图]
for 变量名 in 取值列表
do
命令序列
done

例如:

for username in `cat /root/username.txt`
read -p "请输入密码:" passwd
do
if grep "$username:" /etc/passwd &> /dev/null;then
echo "该用户$username已存在,取消新建$username用户"
else
echo "该用户$username不存在,正在为您创建新用户$username"
useradd $username && echo $passwd | passwd --stdin $username &> /dev/null
echo "新用户$username创建成功"
fi
done

2. while循环语句

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

graph LR
A{while 条件测试操作} -->|条件成立| B[命令序列]
A -->|条件不成立| C[done 结束循环]
B -->|回到循环| A
D[while循环流程图]
while 条件测试操作
do
命令序列
done

例如:

a=1
while [ $a -le 10 ]
do
useradd newuser$a
echo 123456 | passwd --stdin newuser$a
let a++ #循环规则一定要写,否则将反复执行第一个变量
done

3. until循环语句

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

graph LR
A{until 条件测试操作} -->|条件成立| B[done 结束循环]
A -->|条件不成立| C[do 命令序列]
C -->|回到循环| A
D[until循环流程图]
until 条件测试操作
do
命令序列
done

例如:

sum=0
a=1
until [ $a -gt 50 ]
do
sum=$[$sum + $a]
let a++
done

Shell编程之循环语句与echo的用法的更多相关文章

  1. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  2. shell编程之循环语句for / while / until

    shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...

  3. Shell脚本中循环语句for,while,until用法

    循环语句: Bash Shell中主要提供了三种循环方式:for.while和until. 一.for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区 ...

  4. Linux - 简明Shell编程06 - 循环语句(Loop)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash # for循环 for fil ...

  5. shell编程之循环语句

    for #! /bin/sh for FRUIT in apple banana pear; do echo "I like $FRUIT" done while #! /bin/ ...

  6. 02 shell编程之条件语句

    Shell编程之条件语句 学习目标: 掌握shell脚本条件测试 掌握if语句编程 目录结构: 条件测试 条件测试概述 l  对特定的条件进行判断,以决定如何执行操作 l  测试的方法 方法1:tes ...

  7. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

  8. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

  9. Shell编程之条件语句:if、case语句

    Shell编程之条件语句:if.case语句               一.条件测试                1)test命令测试                2)整数值比较         ...

随机推荐

  1. 【操作系统】I/O多路复用 select poll epoll

    @ 目录 I/O模式 I/O多路复用 select poll epoll 事件触发模式 I/O模式 阻塞I/O 非阻塞I/O I/O多路复用 信号驱动I/O 异步I/O I/O多路复用 I/O 多路复 ...

  2. 深入 Laravel 内核之装饰模式

    装饰模式核心内容: 装饰模式可以在不影响组件对象的情况下,以动态.透明的方式从外部给对象添加功能: 装饰器模式的本质就是动态组合.动态是手段,组合是目的.装饰模式是通过把复杂的功能简单化.分散化,在运 ...

  3. html基础 button按钮标签

    场景:在网页中显示用户点击的按钮标签名:button 注意:form不能少,少了不会出效果 html代码 <form > 昵称: <input type="text&quo ...

  4. APP自动化,怎样让应用不重置?

    noReset =True产生的背景: 在编写APP自动化代码时,除了登录用例需要填写账号和密码外,其余很多用例都是需要先登录再操作的,如果每一个用例都从头开始到具体的操作,这样将会耗费很多时间,此时 ...

  5. Android中添加监听回调接口的方法

    在Android中,我们经常会添加一些监听回调的接口供别的类来回调,比如自定义一个PopupWindow,需要让new这个PopupWindow的Activity来监听PopupWindow中的一些组 ...

  6. GIL全局解释器锁、死锁现象、python多线程的用处、进程池与线程池理论

    昨日内容回顾 僵尸进程与孤儿进程 # 僵尸进程: 所有的进程在运行结束之后并不会立刻销毁(父进程需要获取该进程的资源) # 孤儿进程: 子进程正常运行 但是产生该子进程的父进程意外死亡 # 守护进程: ...

  7. [Windows]为windows系统鼠标右键添加软件和图标

    转载自 https://blog.csdn.net/p312011150/article/details/81207059 一.打开注册表 首先打开windows的注册表,当然了,我个人倾向于 (1) ...

  8. vue学习7-v-show和v-if

    1. v-show:这个是一次性会把所有的都渲染出来,然后通过简单的切换display值来修改是否需要被渲染.所以在需要频繁切换的情况下推荐使用.v-show不能在template标签上使用. 2. ...

  9. [JavaWeb]利用JSP的编码特性制作免杀后门

    利用JSP的编码特性制作免杀后门 这里是借鉴了Y4stacker师傅的thinkings 待解决的问题 JSP解析 JSP"乱码"为什么还能被识别 "乱码"的J ...

  10. 集合框架-HashSet集合(无序唯一)

    1 package cn.itcast.p4.hashset.demo; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 /* ...