我刚开始学习PHP。我正在跟随phpacademy的教程,我会向任何人推荐它。无论如何,我正在使用XAMPP来测试我的脚本。我正在尝试编写一个bash脚本,它将启动XAMPP,如果发现从终端重定向到文件xampp.log的特定字符串“XAMPP for Linux started。”,则会打开Firefox到本地主机页面。我在搜索文件时遇到了问题。我一直得到一个:
grep: for: No such file or directory
我知道文件存在,但我认为我的语法有误。这是我得到的:
loaded=$false
string="XAMPP for Linux started."
echo "Starting Xampp..."
sudo /opt/lampp/lampp start 2>&1 > ~/Documents/xampp.log
sleep 15
if grep -q $string ~/Documents/xampp.log; then
$loaded=$true
echo -e "\nXampp successfully started!"
fi
if [$loaded -eq $true]; then
echo -e "Opening localhost..."
firefox "http://localhost/"
else
echo -e "\nXampp failed to start."
echo -e "\nHere's what went wrong:\n"
cat ~/Documents/xampp.log
fi
set -vx
或将 shebang 更改为#!/bin/bash -x
并检查是否按预期展开了所有内容。 - Fredrik Pihl