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是否一致,可以判断是否为硬链接