在bash脚本中使用php脚本的输出

时间:2019-01-23 15:53:47

标签: php bash shell exit

我有一个有效的.bash_profile启动脚本,如下所示:

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

PATH=$PATH:$HOME/bin

export PATH

while true;
do
./xxx.php
echo "Program Restarting."
sleep 10
done

我需要对其进行编辑,以便根据xxx.php脚本的退出方式(可能使用exit(1)),脚本“脱离”其永久循环,并实际上退出其所在的外壳(应关闭我正在使用的设备上的Putty窗口。

问题是,我不知道shell脚本,所以我似乎无法正确使用语法。

尝试

if [./xxx.php]; then
        exit
fi

给我“ -bash:[./xxx.php]:没有这样的文件或目录”(如果我只是输入“ xxx.php”或“ / home /”的完整路径,则会收到相同的错误消息user / xxx.php“)

尝试将返回的代码保存在变量中,以供以后使用ala

BreakVar = $(./xxx.php)

只是使腻子窗口冻结。

我尝试阅读中的问题

Run PHP function inside Bash (and keep the return in a bash variable)

How can I assign the output of a function to a variable using bash?

由于我不了解特定语法的可悲性,因此也无济于事,所以我无法将这些答案转换为我的特定情况。

注意:除了在xxx.php脚本中添加简短的“ exit(1)”子句外,还假设我不能再进一步更改该脚本:(。

1 个答案:

答案 0 :(得分:0)

通常使用变量$?获得退出状态。参见here。因此,假设您要在退出状态为1时退出循环,请编写

while true;
do
  ./xxx.php
  if [ $? -eq 1 ]
  then
     break
  fi
done