zoukankan      html  css  js  c++  java
  • bash变量作用域问题

    queue_exist=0
     
    ps -ef | grep ${PROCESS_PARM} | grep java |  awk '{print $2}' | while read pid
    do
           queue_exist=1
            break;
    done
     
    queue_exist=1 这句就是不起作用,出了循环之后还是等于0。
     
    印象中bash变量都是全局变量。
     
    查了下,原来在bash shell中管道是新起了一个进程的,相当于 queue_exist=1这句是定义在subshell中了,subshell中的变量是local变量,对原来的shell不起作用,因而赋值不成功。
    没找到好的办法,后来就在循环体内创建隐藏文件代替变量来标识这个状态了,最后再把隐藏文件删除。
  • 相关阅读:
    Java 包装类
    CTF 入门笔记
    Java 实践
    Java Object类
    Java 接口
    Java 抽象类
    Java 关键字final
    Java 多态性
    C#类,对象,类成员简介
    C#初始类和命名空间
  • 原文地址:https://www.cnblogs.com/bornfish/p/4170523.html
Copyright © 2011-2022 走看看