linux Bash编程

变量的使用:

新建:

a=1

echo $a

修改:

a=2 可以直接改

删除:

unset a

设置只读权限:

readonly a

变量的类型

字符串:a="wxg"

拼接字符串:a="wxg"123"$b"

数组 a=(value0 value1 value2 value3) 注意是空格分隔

取下标数:b=${a[0]}

取所有数:b=${a[*]} 或 b=${a[@]}

单独赋值:a[0]=100

控制语句

比如有两个变量:

a=1
b=2

if [ $a -eq $b ];then echo "equal";elif [ $a -lt $b ];then echo "left small";elif [ $a -gt $b ];then echo "right small"; fi
语句的空格是很严格的。变量前后一定得有。

循环语句

for循环

for i in 1 2 3 4 5;do echo "loop"; done
for i in ${cat test.txt};do echo $i;done 实现内容行打印 识别空格换行
for i in ${cat test.txt};do echo “a”$i;done 每行打印前加一个a

while循环

a=1

while (($a<10));do echo $a;let "a++";done

还有一种比较常用的:

while read i;do echo $i ;done<test.txt 也可以实现打印 和for 不一样,不换行。

read 的使用

从标准输入和读取输入并赋值给变量

read a

可以同时read 多对象

read a b c d

不指定变量(默认赋值给REPLY)

脚本参数传递

$0 脚本名称

$1~$n获得参数

$# 传递到脚本的参数个数

$$当前脚本的运行ID号

$*以一个单字符串显示所有向脚本传递的参数

$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

基本运算

`expr $a + $b`

`expr $a - $b`

`expr $a \* $b` 注意反斜杠

`expr $a / $b`

`expr $a % $b` 取余

if [ $a == $b ];

if[ $a != $b ];

实现pid相加: