【Shell】利用$1,function简化代码

先写一个检查进程是否存在的命令

ps -ef |grep redis |awk '{print $2}' | grep 进程号

 自动获取进程的pid(主要还是要找到ps -ef对应的字段就好办了)

root@redis:/home/dcr# ps -ef |grep redis |grep 6379 |awk '{print $2}'
27211
#!/bin/bash
function main()
{
# 可以通过$1给这里面传参
        if [ $1 == 1 ];then
                return 5
        fi
}
main 1
# 可以接收return的数值
echo $?

效果:
root@elasticsearch-node1:~# ./fun2.sh 
5
#!/bin/bash
#pid号定义
pid=27211
pid1=27541
pid2=28180
pid3=30332
pid4=42525
#定义函数
function main()
{
        ps -ef |grep redis |awk '{print $2}' | grep $1 &>/dev/null
        if [ $? -ne 0 ];then
                echo "1"
                exit          # 强制退出脚本
        fi
}

main $pid
main $pid1
main $pid2
main $pid3
main $pid4
# 如果上面一个任意一个进程不在,就会返回数值为1,并退出,如果要每步都做完还是要用if语句,写很多重复代码
echo "0"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值