首页 > 解决方案 > 在 bash 脚本中使用 php 脚本的输出

问题描述

我有一个像这样的工作 .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)),脚本“跳出”它的永久循环,并实际退出它所在的外壳(应该关闭腻子我正在使用的设备上的窗口)。

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

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

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

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

BreakVar = $(./xxx.php)

只是导致腻子窗口冻结。

我试过阅读中的问题

在 Bash 中运行 PHP 函数(并将返回值保存在 bash 变量中)

或者

如何使用 bash 将函数的输出分配给变量?

对我也没有多大帮助,因为我不理解具体语法是如何工作的,所以我无法将这些答案转换为我的具体情况。

注意:除了将简短的“exit(1)”子句添加到 xxx.php 脚本之外,假设我不允许再更改该脚本:(。

标签: phpbashshellexit

解决方案


退出状态通常使用变量 $? 获得。见这里。所以,假设你想在退出状态为 1 时退出循环,你写

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

推荐阅读