我正在为这个学期的最后一个项目工作,并且没有丝毫错误,因为信息是从笔记中获取的。
#!/bin/bash
echo "inside formdemo.cgi" > /www/local.FoneBookSearch.com/cgilog
read information
echo "$information" > /www/local.FoneBookSearch.com/cgilog
firstname=`echo $information | cut -d '=' -f2 | cut -d '+' -f1`
lastname=`echo $information | cut -d '=' -f2 | cut -d '+' -f2`
search=`if(grep -iw "$firstname" phonebook || grep -iw "$lastname" phonebook)
then
echo "$search"
else
echo "That person was not found. Please try again"`
#construct a webpage
echo "Content-Type: text/html"
echo ""
echo "<html><head><title> Fone Book Search </title></head><body>"
echo "<h1> Search Results </h1>"
echo "<center> $search </center>"
我相信这对所有人来说都是微不足道的,但对我这样的人来说,这有点多了。我将花时间进行适当的研究,但是今天学期结束时我很好奇是否有人能告诉我哪里出了大错?
TextMate的错误代码:
formdemo.cgi: command substitution: line 17: syntax error: unexpected end of file
Content-Type: text/html
<html><head><title> Fone Book Search </title></head><body>
<h1> Search Results </h1>
<center> </center>
答案 0 :(得分:1)
您需要在以下行后面的if
关闭fi
语句:
echo "That person was not found. Please try again"`
此外,反引号在2014年被弃用,很难“发现”。
反引号(`)用于旧式命令替换。建议使用foo = $(命令)语法。 $()内的反斜杠处理不那么令人惊讶,$()更容易嵌套。见http://mywiki.wooledge.org/BashFAQ/082