shell (xvi) read operation and variable values

Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
This link: https://blog.csdn.net/wzj_110/article/details/100545425

A numerical operations

Integer

#给变量加1,命令行的模式
i=2
i=`echo $i+1|bc`
echo $i

# 脚本-->变量模式-->$()或者``方式!

# (())运算速度最高!

echo $((1+2))

echo $(($a+$b))

Decimal arithmetic

# 计算
echo 10-7.3|bc
2.7
# 保留数位
echo "scale=1;2.1 * 2.3"|bc
4.8
# 只有bc支持小数运算!

########################
# awk的方式

echo "7.8 5.6" | awk '{print ($1-$2)}'

echo "7.8 5.6" | awk '{print ($1-$2)/4}

Requirement 1

# 分割符号-->默认是空格
[root@random mnt]# seq -s "+" 10
1+2+3+4+5+6+7+8+9+10
# 计算
[root@random mnt]# seq -s "+" 10 | bc
55
# 其它方法-->把空格换成+号
[root@random mnt]# echo {1..100} | tr " " "+"| bc
5050

echo `echo {1..100} | tr " " "+"`=`echo {1..100} | tr " " "+"| bc`

expr $[`seq -s "+" 100`]

# 核心:生成序列,指定分割符号,然后运算!

Two     variables read

#(0)直接赋值

#(1)脚本传递参数

#(2)read读入

read command parameters

选项说明:
-a:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的index=0开始
-d:指定读取行的结束符号。默认结束符号为换行符
-n:限制读取N个字符就自动结束读取,如果没有读满N个字符就按下回车或遇到换行符,则也会结束读取
-N:严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。其中换行符或回车算一个字符
-p:给出提示符。默认不支持"\n"换行,要换行需要特殊处理,见下文示例。例如,"-p 请输入密码:"
-r:禁止反斜线的转义功能。这意味着"\"会变成文本的一部分
-s:静默模式。输入的内容不会回显在屏幕上
-t:给出超时时间,在达到超时时间时,read退出并返回错误。也就是说不会读取任何内容,即使已经输入了一部分

 

Guess you like

Origin blog.csdn.net/wzj_110/article/details/100545425