个人工作记录
1、使用linux 命令获取电脑的ip地址:
#!/bin/sh
ifconfig eth0 | awk -F "[ ]+" '/ inet /{print $3}'
注释:
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
awk -F 指定输入文件折分隔符
[ ]+这个是正则表达式,+表示一个或多个,这里就表示一个或多个空格或冒号
2、查找指定程序进程号并杀死进程
#!/bin/sh
echo "==============重启推流服务包server/streamServer/frpsServer============"
ps aux|grep streamServer |awk -F "[ ]+" '/root /{print "kill -9 "$2}'|sh
注释:
查找到执行进程PID,并执行sh
另一种方法:
#!/bin/sh
ps aux|grep frps |awk -F "[ ]+" '/root /{print $2}'|xargs kill -9
注释:
将获取到的进程ID以参数的形式传递给,kill -9
3、获取键盘输入并将获取值当做参数进行传递
echo "请输入你的名字:\n"
read name
printf "=========================获取到的名字为:%s==========================\n" $name
echo "输入一个数字:"
read number1
printf "再输入一个数:"
read number2
echo $number1 $number2
if [ $number1 -eq $number2 ];
then
printf "================================\n"
fi
printf "两个数的计算结果为:%d\n" $(($number1+$number2))
注释:
从输入设备读取信息
4、if…elif…else…的用法
#!/bin/sh
SYSTEM=`uname -s` #获取操作系统类型,进行赋值操作
if [ $SYSTEM = "Linux" ] ; then #条件必须使用[]包含起来 前后一定要有空格,并且后面必须有分号;
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then #条件前后一定要有空格
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris" #字符串的赋值一定不能有空格
else
echo "What?"
fi
注释:与其他语言不同的是,比较不使用大于号或者小于号而是针对不同类型采用不同含义字符表示
1 字符串判断
[ str1 = str2 ] 当两个串有相同内容、长度时为真
[ str1 != str2 ] 当串str1和str2不等时为真
[ -n str1 ] 当串的长度大于0时为真(串非空)
[ -z str1 ] 当串的长度为0时为真(空串)
[ str1 ] 当串str1为非空时为真
2 数字的判断
[ int1 -eq int2 ] 两数相等为真
[ int1 -ne int2 ] 两数不等为真
[ int1 -gt int2 ] int1大于int2为真
[ int1 -ge int2 ] int1大于等于int2为真
[ int1 -lt int2 ] int1小于int2为真
[ int1 -le int2 ] int1小于等于int2为真