我有一个小的bash脚本,它从终端获取一些输入,启动浏览器并在浏览器中对网站运行查询。当它在没有显示服务器的系统上运行时,浏览器当然无法启动,我想在脚本中检测它。但是,我在从此行检索退出代码时遇到问题 - firefox http://www.411.com/name/$fname'-'$lname &> /dev/null &
。我在SO上看到过类似的问题,但我无法找到解决方案,因为它适用于我。
#!/bin/bash
clear
echo
echo
while [ -z $fname ]; do
echo -n "First Name: "
read fname
done
echo
echo -n "Last Name: "
read lname
echo -n "Starting recon on $fname $lname. "
read -p "Press <enter> to continue..."
echo -n "Launching Firefox ...Please wait..."
firefox http://www.411.com/name/$fname'-'$lname &> /dev/null &
status=$?
if [ $status -eq 0 ]; then
echo "Done"
fi
答案 0 :(得分:1)
发送到后台的进程在此时不会返回退出代码(它可能仍在运行)。
您无法从尚未完成的流程中获取退出代码。 (您可以wait <pid>
从后台进程获取返回代码。)
如果您正在尝试测试X服务器,请尝试检查正在设置的$DISPLAY
和/或尝试运行其他一些短期X程序,您可以以正常方式测试返回代码。< / p>