shell编程笔记

1.获得字符串长度

[root@(none) ~]# var=123456
[root@(none) ~]# echo ${#var}

6

 

2.当前shell的版本

[root@(none) ~]# echo $SHELL
/bin/bash
[root@(none) ~]# echo $0
-bash

 

 

3.环境变量UID

echo $UID

当前脚本执行用户的uid

 

 

4.数学运算

加减

[root@(none) ~]# a=1
[root@(none) ~]# b=2
[root@(none) ~]# let c=a+b
[root@(none) ~]# echo $c
3

自加

[root@(none) ~]# let c++
[root@(none) ~]# echo $c
4

自减

[root@(none) ~]# let c--
[root@(none) ~]# echo $c
3

简写

[root@(none) ~]# let c+=6
[root@(none) ~]# echo $c
9

[root@(none) ~]# let c-=6
[root@(none) ~]# echo $c
3

其他方法

[root@(none) ~]# a=1
[root@(none) ~]# b=2
[root@(none) ~]# c=$[ a + b ]
[root@(none) ~]# echo $c
3

expr同样可以用于基本算数

[root@(none) ~]# c=`expr 3 + 4`
[root@(none) ~]# echo $c
7
[root@(none) ~]# c=$(expr $no1 + 5)
[root@(none) ~]# echo $c
5

 

用bc进行高级运算,安装bc后

[root@(none) ~]# echo " 4 * 0.56" | bc
2.24

设定小数精度

[root@(none) ~]# echo "scale=2;3/8" | bc
.37

进制转换

[root@(none) ~]# no=100
[root@(none) ~]# echo "obase=2;$no" | bc
1100100
[root@(none) ~]# no=1100100
[root@(none) ~]# echo "obase=10;ibase=2;$no" | bc
100

计算平方根

[root@(none) ~]# echo "sqrt(100)" | bc
10
[root@(none) ~]# echo "10^10" | bc
10000000000

 

5.数组

[root@(none) ~]# array_var=(1 2 3 4 5 6)

[root@(none) ~]# echo ${array_var[0]}
1

[root@(none) ~]# echo ${!array_var[*]}
0 1 2 3 4 5

[root@(none) ~]# echo ${!array_var[@]}
0 1 2 3 4 5

 

6.不以按回车方式读取字符"n"

[root@(none) ~]# read -n 5 var
12345[root@(none) ~]#

 

7.字段分割符和迭代器

[root@(none) ~]# data="name,sex,roollno,location"
[root@(none) ~]# oldIFS=$IFS
[root@(none) ~]# IFS=,
[root@(none) ~]# for item in $data; do echo Item: $item; done

Item: name
Item: sex
Item: roollno
Item: location

 

posted on 2018-12-02 17:50  ww2000e  阅读(21)  评论(0)    收藏  举报