shell常用知识点

来源:互联网 发布:淘宝签约商家 编辑:程序博客网 时间:2024/06/05 09:20

0 shell中if,while的条件语句怎么写

test和[]

字符串比较 ==, !=

数字比较 - g,l,e,n,q,t的组合

greater than, less than, equil, not equil, greater equil, less equil


1 shell的字符串

STR="hello"

STR='hello'

那么单引号和双引号有什么区别呢?

单引号是原因输出不进行变量替换,而双引号是可以替换的


2. shell的数组

定义 ARRAY=(1,2,3,4)

访问 ${ARRAY[index]}

整个数组 ${ARRAY[*]}, ${ARRAY[@]}

数组长度 ${#ARRAY[*]}, ${#ARRAY[@]}


3. shell的命令行参数

命令行参数其实就是数组,但是没名字

运行的命令 $0

参数 $n

所有 $* $@

长度 $#


4. shell的数学运算

$[], expr, let


5. shell中的(())作用

a. 用来扩展数学运算

x=10

y=20

z=$(($x + $y))

$的作用就是取结果

b. 用来扩展逻辑运算

((1 && b))

c. 用来扩展流程控制

if ((a < b))

while ((a < b))

for ((i=0; i<10; i++))


6.shell中的输入

read VAR


7. shell的浮点运算

网上说可以使用 bc和awk

#!/bin/bash

c=$(echo "(-105.5*7+50*3)/20 + (19^2)/7"|bc)
echo $c

c=$(awk 'BEGIN{print (-105.5*7+50*3)/20 + (19^2)/7 }')
echo $c

jonly@ubuntu:~$ ./test.sh
22
22.1464

为什么是22呢?查询资料发现需要加上scale=2;
c=$(echo "scale=2;(-105.5*7+50*3)/20 + (19^2)/7"|bc)

浮点运算总结: 使用BC进行运算,使用scale进行除法的位数保留,使用转换成整数进行比较,使用加法进行四舍五入




























































原创粉丝点击