shell 脚本 功能性语句 read,expr,test
1. read 从终端输入数据赋值给变量
read val 把读入的数据存放到val中
#!/bin/bash echo -n "please input two number :"
read A B
echo "\$A = $A \$B = $B" #-p 输出提示信息
read -p "please input two number : " A B #-t 在设定的时间范围内输入,如果时间到达还没输入,不给变量赋值直接结束
read -t 5 -p "please input two number :" A B #-n 在设定的字符长度内容输入,如果达到字符长度,直接结束并赋值,没有没有达到,需要自己敲回车,输入是自带空格的
read -n 5 -p "please input two number :" A
echo "\$A = $A" #-s隐藏输入的内容
read -s -p "please input two number :" A B
echo "\$A = $A \$B = $B"
2. expr 算术运算命令,+ - * / %
注意事项:(1) * 号要加转译字符才能使用
(2) 双引号使特殊符号没有了特殊意义,除了$ \ `
(3) 单引号使特殊符号没有了特殊意义
#!/bin/bash # 注意空格 不能多也不能少
A=`expr 10 + 20`
echo "\$A = $A" B=`expr 10 - 20`
echo "\$B = $B" # 乘号需要转译
C=`expr 10 \* 20`
echo "\$C = $C" D=`expr 180 / 20`
echo "\$D = $D" E=`expr 10 % 20`
echo "\$E = $E" # 注意 + 前后不能有空格
let F=100+2000
echo "\$F = $F" # + 左右空格随意
G=$((16+35))
echo "\$G = $G" H=$[16 +65]
echo "\$H = $H"
运行结果:

3. test 测试整数, 字符串 , 文件
测试 字符串、整数、文件属性
(1)--字符串测试
s1 = s2 测试两个字符串的内容是否完全一样
s1 != s2 测试两个字符串的内容是否有差异
-z s 测试字符串的长度是否为0
-n s 测试字符串的长度是否不为0
(2)--整数测试
a -eq b 测试a和b是否相等
a -ne b 测试a和b是否不相等
a -gt b 测试a是否大于b
a -ge b 测试a是否大于等于b
a -lt b 测试a是否小于b
a -le b 测试a是否小于等于b
(3)--文件测试
-e 测试文件是否存在
-s 测试文件是否不为空
-b 判断是否是一个块设备文件
-c 判断是否是一个字符设备文件
-d 判断是否是一个目录
-f 判断是否是一个普通文件
-L 判断是否是一个符号链接
-S 判断是否是一个套接字文件
-p 判断是否是一个管道文件
file1 -nt file2 file1是否比file2文件的修改时间新
file1 -ot file2 file1是否比file2文件的修改时间旧
file1 -ef file2 两个文件的inode是否一致,可以判断是否为硬链接
shell 脚本 功能性语句 read,expr,test的更多相关文章
- Linux就该这么学--Shell脚本条件语句(二)
1.for条件语句 先读取多个不同的变量值,然后逐一执行同一组命令. 从列表文件中读取主机地址,逐个测试是否在线. 从ipadds.txt中读取主机地址后赋值给HLIST变量后逐个ping列表中的主机 ...
- Linux就该这么学--Shell脚本条件语句(一)
1.条件测试语句能够让Shell脚本根据实际工作灵活调整工作内容,例如判断系统的状态后执行指定的工作,或创建指定数量的用户,批量修改用户密码,这些都可以让Shell脚本通过条件测试语句完成. if条件 ...
- Shell脚本case语句
case语句格式 case 变量 in PAT1) 执行语句 ;; PAT2) 执行语句 ;; *) 默认执行语句 ;; esac 使用示例: 编写一个shell脚本,通过提示用户输入信息,输出cpu ...
- shell脚本if语句后面的中括号[]与java的if后面的小括号不同(),实际上[左中括号相当于test命令
四.shell 中的条件判断命令 test 和 [ test 命令可以处理 shell 脚本中的各类工作.它产生的不是一般的输出,而是可使用的退出状态.test 命令通过接受各种不同的参数,来控制 ...
- shell脚本判断语句和循环语句
if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; t ...
- Linux Shell脚本编程-语句控制
过程式编程语言bash脚本编程面向过程的编程 顺序执行:默认法则,按照顺序一条一条语句执行 选择执行:分支,条件判断,符合条件的分支予以执行 循环执行:将同一段代码反复执行有限次,所以循环必须有 ...
- linux shell脚本常用语句
linux shell 指令 诸如-d, -f, -e之类的判断表达式: 文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d ...
- shell脚本if语句的多种条件参数
if语句有多种写法 [root@shell-yankerp sh]# [ -f file ] && echo "yes" || echo "no" ...
- Shell 编程 循环语句
本篇主要写一些shell脚本循环语句的使用. for 循环 指定次数 #!/bin/bash for ((i=1;i<=10;i++)) do echo $i done [root@localh ...
随机推荐
- 【Java多线程系列二】Thread类的方法
Thread实现Runnable接口并实现了大量实用的方法. /* * 此方法释放CPU,但并不释放已获得的锁,其它就绪的线程将可能得到执行机会,它自己也有可能再次得到执行机会 */ public s ...
- 网络编程(二)——TCP协议、基于tcp协议的套接字socket
TCP协议与基于tcp协议的套接字socket 一.TCP协议(流式协议) 1.可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的 ...
- 优雅地使用 VSCode 来编辑 vue 文件
javascript visual-studio-code vue.js 当然 vscode 对 vue 也不是原生支持的,今天来扒一扒如何配置 vscode 以便优雅地编辑 vue 文件 先来扒一扒 ...
- hdu 6437 /// 最小费用最大流 负花费 SPFA模板
题目大意: 给定n,m,K,W 表示n个小时 m场电影(分为类型A.B) K个人 若某个人连续看了两场相同类型的电影则失去W 电影时间不能重叠 接下来给定m场电影的 s t w op 表示电影的 开始 ...
- 用IP地址访问共享文件
一.用WIN+R 打开运行,如图输入地址: 二.输入用户名和密码就打开共享文件夹了
- 在当前对象中可以使用this关键字指代当前对象
在当前对象中可以使用this关键字指代当前对象
- lombok @Builder实现原理
public class Person { private Person(Builder builder) { name = builder.name; age = builder.age; } pr ...
- sed 一 文本处理工具
简介 sed 采用的是流编辑模式: 最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据. sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行 ...
- 小程序生成海报:通过 json 配置方式轻松制作一张海报图
背景 由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有二维码的图片,然后引导用户下载图片到本地后再分享到朋友圈.而小程序 ...
- 牛客网 NOIP赛前集训营-普及组(第四场)C--部分和 (高维前缀和)
传送门 解题思路 高维前缀和模板题.首先,求前缀和有两种方式,比如说对于求二维前缀和来说. 第一种 : for(int i=1;i<=n;i++) for(int j=1;j<=n;j++ ...