【发布时间】:2011-01-18 10:40:58
【问题描述】:
我写了一个 POC 。这段代码在 Linux 中运行良好,但在 Solaris 中不行。我正在使用 Solaris 10
enter code here
#!/bin/sh
echo inside parent
echo executing child in the background
./remove deepti & # executing dummy command to make sure that background process fails
childpid=$!
i=0
while [ `ps -p $childpid >/dev/null; echo $?` = 0 ]; do
sleep 5
i=`expr $i + 1`
if [ $i -gt 3 ]; then
echo wait exceeded
ps -p $childpid >/dev/null
exit $?
fi
done
wait $childpid
exit $?
我希望 Wait 会返回后台命令的退出状态。退出状态应该是 127 。但是我的退出状态为 0。
【问题讨论】:
-
格式正确的代码看不懂。
-
如果我在这里输入代码 sn-p 那么默认情况下整个代码都在一个段落中。如何避免这种情况?
-
@userXXX:请将代码缩进四个空格,以便 StackOverflow 将其识别为要格式化的代码。我已经为您完成了,请阅读formatting help,了解有关人们想要回答的两个问题的详细信息:-)
-
什么是“删除 deepti”?请提供可重现的案例。此外,您可以从代码示例中编辑掉“在此处输入代码”。
-
你应该可以改变
while [ps -p $childpid >/dev/null; echo $?` = 0 ]` 到while ps -p $childpid >/dev/null(没有括号,反引号,echo)。