我有一个有效的.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)”子句外,还假设我不能再进一步更改该脚本:(。
答案 0 :(得分:0)
通常使用变量$?获得退出状态。参见here。因此,假设您要在退出状态为1时退出循环,请编写
while true;
do
./xxx.php
if [ $? -eq 1 ]
then
break
fi
done