@yanglt7
2018-10-24T01:35:05.000000Z
字数 3216
阅读 1066
Shell
算术运算符 | 意义 |
---|---|
+、- | 加法、减法 |
*、/、% | 乘法、除法、取余 |
** | 幂运算 |
++、-- | 增加及减少 |
!、&&、|| | 逻辑非、与、或 |
<、<=、>、>= | 比较符号 |
==、!=、= | 比较符号 |
<<、>> | 向左/右移位 |
~、|、&、^ | 按位取反、按位异或、按位与、按位或 |
=、+=、-=、*=、/=、%= | 赋值运算符 |
运算操作符与运算命令 | 意义 |
---|---|
(()) | 用于整数运算 |
let | 用于整数运算 |
expr | 可用于整数运算,还有其他额外功能 |
bc | Linux下的一个计算器程序(适合整数及小数运算) |
$[] | 用于整数运算 |
awk | 用于整数或小数运算 |
declare | 定义变量值及属性,-i 参数可以用于定义整型变量,做运算 |
运算操作符与运算命令 | 意义 |
---|---|
((i=i+1)) | 运算后赋值法 |
i=$((i+1)) | 表达式运算后赋值给 i |
((8>7&&5==5)) | 可以进行比较,也可加入逻辑运算 |
echo $((2+1)) | 可输出运算结果 |
[root@web001 scripts]# echo $((1+1))
2
[root@web001 scripts]# i=5
[root@web001 scripts]# ((i=i*2))
[root@web001 scripts]# echo $i
[root@web001 scripts]# echo $((8>7&&5==5))
1
[root@web001 scripts]# i=2
[root@web001 scripts]# let i=i+2
[root@web001 scripts]# echo $i
4
[root@web001 scripts]# i=2
[root@web001 scripts]# i=i+2
[root@web001 scripts]# echo $i
i+2
[root@web001 scripts]# expr 2 + 2
4
[root@web001 scripts]# expr 2 \* 2
4
[root@web001 scripts]# expr 2 * 2
expr: syntax error
[root@web001 scripts]# i=5
[root@web001 scripts]# i=`expr $i + 6`
[root@web001 scripts]# echo $i
11
[root@web001 scripts]# i=6
[root@web001 scripts]# expr $i + 5 &>/dev/null
[root@web001 scripts]# echo $?
0
[root@web001 scripts]# i=a
[root@web001 scripts]# expr $i + 5 &>/dev/null
[root@web001 scripts]# echo $?
2
#返回 0 则表示变量为整数,否则就不是整数
[root@web001 scripts]# cat expr.sh
#!/bin/bash
expr $1 + 1 >/dev/null 2>&1
[ $? -eq 0 ] && echo int || echo chars
[root@web001 scripts]# sh expr.sh 1
int
[root@web001 scripts]# sh expr.sh a
chars
[root@web001 scripts]# cat expr1.sh
#!bin/bash
if expr "$1" : ".*\.pub" &>/dev/null
then
echo "you are using $1"
else
echo "pls use *.pub file"
fi
[root@web001 scripts]# sh expr1.sh 1
pls use *.pub file
[root@web001 scripts]# sh expr1.sh id.pub
you are using id.pub
[root@web001 scripts]# char="I am ylt."
[root@web001 scripts]# expr length "$char"
9
[root@web001 scripts]# echo ${#char}
9
[root@web001 scripts]# echo ${char}|wc -L
9
[root@web001 scripts]# echo ${char}|awk '{print length($0)}'
9
[root@web001 scripts]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
quit
[root@web001 scripts]# echo 3.5+5.5|bc
9.0
[root@web001 scripts]# echo "scale=2;5/3"|bc
1.66
[root@web001 scripts]# i=3
[root@web001 scripts]# i=`echo $i+3|bc`
[root@web001 scripts]# echo $i
6
[root@web001 scripts]# echo "3.3 2.2"|awk '{print ($1-$2)}'
1.1
[root@web001 scripts]# declare -i A=3 B=4
[root@web001 scripts]# A=A+B
[root@web001 scripts]# echo $A
7
[root@web001 scripts]# i=$[i+3]
[root@web001 scripts]# echo $i
5
[root@web001 scripts]# echo $[2/3]
0
[root@web001 scripts]# echo $[3/2]
1
[root@web001 scripts]# echo $[3%2]
1
[root@web001 scripts]# echo $[2%3]
2
Shell 变量处理可直接赋值或脚本传参外,还可使用 read 命令从标准输入中获得,read 为 bash 内置命令。
语法格式:read [参数] [变量名]
常用参数如下:
基本读入功能
[root@web001 scripts]# read -t 5 -p "Pls input one num:" num
Pls input one num:3
[root@web001 scripts]# echo $num
3