Php Shell脚本分段错误

Php Shell脚本分段错误,php,shell,Php,Shell,嗨,我有一个shell脚本,它应该基于php代码的返回来运行: x=1 while [[ "$x" != 5 ]] do echo "Welcome $x" php test.php x=$? done 还有php代码 echo "Testdfdf test".PHP_EOL; exit(4); 因此,我希望每当我从php获得5时退出循环 但我有时会: ./myshell: line 7: 20529 Segmentation fault php test.php

嗨,我有一个shell脚本,它应该基于php代码的返回来运行:

x=1
while [[ "$x" != 5 ]] 
do
  echo "Welcome $x"
  php test.php
  x=$?
done
还有php代码

echo "Testdfdf test".PHP_EOL;
exit(4);
因此,我希望每当我从php获得5时退出循环

但我有时会:

./myshell: line 7: 20529 Segmentation fault      php test.php

它应该循环而没有问题吗?

它应该循环,它确实循环,但是没有关于php为什么以segfault结束的线索。

您的shell while循环将永远循环,因为您的php脚本将返回4到shell,而您的while循环将检查=5.这意味着不符合条件。你到底想做什么?除非有必要,否则我建议用php(或shell)做所有事情,但尽量不要将两者混用。

可能是因为这个错误同时影响Ubuntu和Debian

两者的融合完全符合UNIX“许多小工具”的思想;毕竟,调用其他程序并检查其退出代码是shell最擅长的工作。:)将所有内容推入PHP的好处是,不需要在循环的每个周期都启动一个新的解释器——这当然是一种性能增强,尽管可能会影响正确性(如果PHP[ab]使用全局变量);运行脚本;当您查看核心文件时,它会告诉您是哪个进程导致了它的创建——很可能是PHP解释器,这不是bash的问题;然后,您可以从核心转储生成堆栈跟踪,以向相关方报告。我对Debian有相同的问题,但在CentOS中没有