linux字符测试以及for循环
1、字符测试
常用的测试字符的命令:
== 、=都表示测试字符相等,格式为【 A = B 】需要注意的是变量与等号之间需要有空格,不然测试的结果不正确示例如下
若字符与等号不加空格,假设变量A=ab B=cd, 比较A B的值是否相等,使用echo $? 查看命令状态,因为A不等于B 所以命令返回状态应该为1

!=:”表示测试字符是否等于
> 判断字符是否大于
<判断字符是否小于
此外 -n +字符串表示测试指定字符串是否为空,-s + 字符串表示测试字符串是否为不空
for循环以及练习
for循环用法:
for 变量 in 列表;do(若do在下一行前面可不加分号)
循环体(要执行的命令)
done
如何生成列表呢,方法有两种。
1、使用花括号例如 {1..100} 表示自动展开从1到100
2、使用命令替换 类似于`seq 10` 表示为从1循环到10,
seq命令格式: seq 起始数(可以忽略)步进长数(可以忽略)结束数示例如下,需要注意的是seq有设置步进长数的时候,有时候并不会匹配最后一位。


练习for循环:编写一个脚本,依次向每一个用户的前面加hello问好,最后统计共有多少个用户。
脚本如下: 定义变量总共有多少个用户: declare -i LINES=` wc -l /etc/passwd | cut -d' ' -f1` 此处在做实验时-d后面分隔符为空格,未选择空格为分隔符,导致报错
使用for循环: for I in `seq 1 $LINES` ;do
echo"hello, `head -n $I /etc/passwd | tail -1 | cut -d: -f1` " 使用head命令取得前n行的用户,tail -1取得每一次循环最后一个 用户
done
echo " there have $I user "
实验结果如下图:

练习2 : 批量添加10个用户,user1到user10并且密码同用户名,当用户已经存在时不添加。
脚本如下: for I in {1..10};do
if id user$I ; then
echo " user$I already existed"
else
useradd user$I &> /dev/null
echo "user$I" | passwd --stdin user$I &> /dev/null
echo" user$I add success"
fi
done
下图是用户已经存在:

同理利用for循环,也可以批量删除用户,下图为删除用户后,添加的用户。

使用 cat /etc/passwd 看到新添加的用户。cat

练习三: 批量添加10个用户,当接受到addd参数时,批量添加10个用户,当接收到dell 参数时批量删除用户,如果用户已经存在则不添加,如果用户不存在则不删除。
脚本截图如下:


批量添加用户:

使用 cat /etc/passwd 验证是否添加用户

批量删除用户:

linux字符测试以及for循环的更多相关文章
- linux基础11-bash编程(字符串测试 和 for循环)
练习:传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来.(1)字符测试:==:测试是否相等,相等为真,不等为假!=: 测试是否不等,不等为真,等为假>< ...
- 归纳整理Linux下C语言常用的库函数----字符串转换、字符测试、及内存控制
在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...
- 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍
两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux ps1 menu choice Multiselect 传教士 菜单 powe ...
- Linux字符设备驱动实现
Linux字符设备驱动实现 要求 编写一个字符设备驱动,并利用对字符设备的同步操作,设计实现一个聊天程序.可以有一个读,一个写进程共享该字符设备,进行聊天:也可以由多个读和多个写进程共享该字符设备,进 ...
- Linux字符设备简单示例
1. Linux字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现open.close.read和write系统调用.例如:串口.Led.按键等. 2. 通过字符设备文件 ...
- 6-3 bash脚本编程之五 字符串测试及for循环
1. 字符测试 ==:等号两边要有空格,否则会被认为是赋值. !=: 测试是否相等,记住如果不等为真,等为假. -n string: 测试指定字符串是否为空,空位真,不空为假. -s string: ...
- Kali linux渗透测试常用工具汇总1
1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...
- 深入理解Linux字符设备驱动
文章从上层应用访问字符设备驱动开始,一步步地深入分析Linux字符设备的软件层次.组成框架和交互.如何编写驱动.设备文件的创建和mdev原理,对Linux字符设备驱动有全面的讲解.本文整合之前发表的& ...
- Linux字符设备驱动结构(一)--cdev结构体、设备号相关知识机械【转】
本文转载自:http://blog.csdn.net/zqixiao_09/article/details/50839042 一.字符设备基础知识 1.设备驱动分类 linux系统将设备分为3类:字符 ...
随机推荐
- C# Conversion Keywords
主要是解决类与其他不同数据类型的转换 类于类的显式转换: explicit public static explicit operator B(A a) { return new B(){a.... ...
- golang 读书笔记
介绍 Go语言是一种让代码分享更容易的编程语言.Go语言自带一些工具,让使用别人写的包更容易,并且分享自己写的包更容易. Go语言对并发的支持是这门语言最重要的特性之一.goroutine很像线程,但 ...
- urllib-Proxy
代理的使用: 首先,当我们正确爬取一个网页时,发现代码没有错误,可就是不能爬取网站.原因是有些网站设置了反爬取手段,就是知道你就是用python代码爬取该网站,设置了屏蔽.如果我们又想爬取该网站,便要 ...
- 大数据学习之HDFS基本命令操作05
1)hdfs的客户端 1.网页形式->测试用 http://192.168.40.11:50070/dfshealth.html#tab-overview 2.命令行形式->测试用 3.企 ...
- 蓝桥杯 穿越雷区(bfs)
题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废.某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短? ...
- Dalvik和ART
--摘自<Android进阶解密> DVM和ART都是在Zygote进程中诞生的 *DVM和JVM的区别* 1.基于的架构不同 DVM是基于寄存器的,它没有基于栈的虚拟机在复制数据时而使用 ...
- pythonpipinstallpymongo报错
1.安装pymongo模块,报错pip版本低,升级版本又报错找不到合适的版本,网友说网络问题,要使用国内的镜像源来加速:pip install pymongo -i http://pypi.douba ...
- Markdown初使用
Markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 相比WYSIWYG编辑器 优点:1.因为是纯文本,所以只要支持Markdown的地方都能获得一样的 ...
- AT与ATX电源 - 1 系统状态
ATX与AT电源比较 ATX电源普遍应用在PC中,它有两套电源,一个是正常操作使用:12V,5V,3.3V和-12V,还有一个独立的5V待机电源,所谓的待机电源就是其ON的充要条件是AC输入存在,而正 ...
- 3A
# -*- coding: utf-8 -*- import datetime, time, heapq, cx_Oracle #2rd sheet def get_5mins_3A_LOG(): c ...