@yanglt7
2018-10-24T01:35:05.000000Z
字数 3216
阅读 1161
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 $i4[root@web001 scripts]# i=2[root@web001 scripts]# i=i+2[root@web001 scripts]# echo $ii+2
[root@web001 scripts]# expr 2 + 24[root@web001 scripts]# expr 2 \* 24[root@web001 scripts]# expr 2 * 2expr: syntax error
[root@web001 scripts]# i=5[root@web001 scripts]# i=`expr $i + 6`[root@web001 scripts]# echo $i11
[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/bashexpr $1 + 1 >/dev/null 2>&1[ $? -eq 0 ] && echo int || echo chars[root@web001 scripts]# sh expr.sh 1int[root@web001 scripts]# sh expr.sh achars
[root@web001 scripts]# cat expr1.sh#!bin/bashif expr "$1" : ".*\.pub" &>/dev/nullthenecho "you are using $1"elseecho "pls use *.pub file"fi[root@web001 scripts]# sh expr1.sh 1pls use *.pub file[root@web001 scripts]# sh expr1.sh id.pubyou 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 -L9[root@web001 scripts]# echo ${char}|awk '{print length($0)}'9
[root@web001 scripts]# bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.1+12quit
[root@web001 scripts]# echo 3.5+5.5|bc9.0[root@web001 scripts]# echo "scale=2;5/3"|bc1.66
[root@web001 scripts]# i=3[root@web001 scripts]# i=`echo $i+3|bc`[root@web001 scripts]# echo $i6
[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 $A7
[root@web001 scripts]# i=$[i+3][root@web001 scripts]# echo $i5[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:" numPls input one num:3[root@web001 scripts]# echo $num3