ksh93函数返回代码127

时间:2014-05-14 18:02:35

标签: background ksh

我写了一个小函数来提交一个在ksh中超时的命令。如果我使用“ps”,在某些情况下函数返回127! ksh(AIX,88)没有这种行为,但是ksh93(AIX)没有。

#!/usr/bin/ksh93
function mysubmit
{
eval "$@" &
pid=$!
/usr/bin/ps -p $pid
wait $pid
rc=$?
return $rc
}
output="$(mysubmit true)"
echo "RC 1=$?"
mysubmit true
echo "RC 2=$?"

执行:

# ./test2.sh
RC 1=127
      PID    TTY  TIME CMD
RC 2=0

如果我将ksh93更改为ksh,则可以。如果我将“ps -p $ pid”改为“kill -0 $ pid”,它就可以了。如果我删除后台处理(&),它就可以了。在我的情况下,我将“ps -p $ pid”更改为“kill -0 $ pid”,它解决了问题,但我根本不理解RC = 127的行为......!

注意:我真正的“mysubmit”更复杂,我尽可能地简化它以提取行为。

有什么想法吗?

0 个答案:

没有答案