####脚本如下 OSW_init.sh
SCRIPTLOC=/orabak/oswbb/oswbbexport SCRIPTLOC###执行过程,发现 osw_stat 显示都是 2,理论上结果应该为1,也就是只看到 OSW_init.sh 这一个进程。
  osw_stat=`ps -ef|grep OSW|grep -v grep| wc -l`
#########加入调试语句,发现返回结果为1.
  ps -ef|grep OSW|grep -v grep| wc -l[/color]
  osw_chk=`expr $osw_stat`
  if [ $osw_chk -eq 1 ]
  then
    cd $SCRIPTLOC
    $SCRIPTLOC/OSWatcher.sh 30 360
  fiexit 0############请问:
加入调试语句,发现返回结果为1. 请问为何 在Linux 加入 反斜杠 ·和 不加入反斜杠 为何不一样。加入反斜杠的语句,返回为2
`ps -ef|grep OSW|grep -v grep| wc -l`不加入反斜杠胡语句,返回为1
ps -ef|grep OSW|grep -v grep| wc -l

解决方案 »

  1.   

    你直接输出
    ps -ef|grep OSW
    的结果看一下
    我猜是用``的时候多了一个shell调用什么的,就多了一行
      

  2.   

    我猜是用``的时候多了一个shell调用什么的,就多了一行
    ->是这样的,linux 是这样的,会多调用一个shell, 但是在unix 不会这样。因为想写一个在unix 和 linux 都通用的脚本。你的意思是说在linux 下;

     osw_stat=`ps -ef|grep OSW|grep -v grep| wc -l`
    改成
     ps -ef|grep OSW|grep -v grep| wc -l > 1.txt
    ows_stat=`cat 1.txt`,对吗?