Bash脚本编写
1 bash基本使用
1.1 read命令
read命令是用于从终端或者文件中读取输入的内部命令
读取整行输入
每行末尾的换行符不被读入
read命令的使用
从标准输入读取输入并赋值给变量
read var
从标准输入读取多个内容
read var1 var2 var3
不指定变量(默认赋值给REPLY)
read
脚本参数传递
$0脚本名称
$1-$n获取参数
$#传递到脚本的参数个数
$$ 脚本运行的当前进程ID号
$* 以一个单字符串显示所有向脚本传递的参数
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表示有错误
1.2 基本运算
1 a=10 b=20 2 3 + 加法 ‘expr $a+$b’ =30 4 5 - 减法 ‘expr $a-$b’ =-10 6 7 * 乘法 ‘expr $a\*$b’ =200 8 9 / 除法 ‘expr $b/$a’=2 10 11 % 取余 ‘expr $b % $a’ 结果为10 12 13 = 赋值 a=$b 将把变量b 的值赋给a 14 15 ==相等 相同则返回true;[ $a==$b ] 返回false 16 17 !=不相等 不相同则返回true;[ $a != $b ]返回false 18 19 -eq 检测相等[ $a –eq $b ] 返回false 20 21 -ne 检测不相等[ $a –ne $b ] 返回true 22 23 -gt 检测左边是否大于右边 [ $a –gt $b ] 返回false 24 25 -lt 检测左边是否小于右边 [$a –lt $b ],返回true 26 27 -ge 检测左边是否大于等于右边[ $a –ge $b ],返回false 28 29 -le 检测左边是否小于等于右边[ $a –le $b ],返回true
2 bash与linux命令的组合
2.1 bash与目录命令
创建目录并生成文件
mkdir test
cd test
echo “hell0”>test.txt
ls
bash与内存
for i in ‘ps aux|awk’{print $6}’ |grep –v ‘RSS’
count=$[$count++$i]
echo=”$count/kb”
练习:文件参数传递
在test.sh中输入下列内容
执行
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
运行命令:bash test.sh 11 22 33 结果:
练习:基本运算(`是tab上面那个键 波浪线那个键)
1 a=10 2 3 b=20 4 5 echo `expr $a + $b` 6 7 echo `expr $a - $b` 8 9 echo `expr $a \* $b` 10 11 echo `expr $a / $b` 12 13 echo `expr $a % $b`
执行 bash test.sh
说明:可以直接在命令行输出,也可以保存文件输出,运算符和变量直接必须要有一个空格不然会报错 乘号之前需要转义,不然也会报错
练习:判断
if [ $a == $b ]; then echo "big";fi(注意空格)
ps -aux | awk ‘{print $3}’ 取出第三行
ps -aux | awk ‘{print $3}’ | grep –v %CPU 去掉%cpu