Я пишу сценарий Unix, который будет сканировать текстовый файл, находить экземпляры определенного слова, а затем удалять соответствующую строку в другом документе.Все работало до тех пор, пока я не проверил свою последнюю попытку, и я получил:
./Present.sh: line 35: syntax error near unexpected token `done'
./Present.sh: line 35: ` done'
, и я понятия не имею, почему.Погуглив ошибку, я получил несколько ответов от unix.com, но ничего ценного (попытка советов других людей, у которых были эти проблемы, не помогла этой проблеме).Большое спасибо за помощь !!!
Мой код:
for var in bent bound bled bred brought built burned burnt bought caught clung crept dealt dug dived dreamed dreamt fed felt fought found fled flung ground hung heard held kept knelt laid led leaped leapt learned learnt left lent lighted lost made meant met misspelled misspelt mowed mown paid pled proved proven sawed sawn said sought sold sent sewed sewn shaved shaven shone shoed shod shot showed sat slept slid slung sowed sown sped spent silted spilt spun sprung stood stuck stung struck strung swept swelled swollen swung taught told thought thrived understood upheld waved woven wept wound won withheld withstood wrung
do
cd ~
cd Documents/UPenn/'Senior Year'/'Spring 2011'/Thesis/Results/
echo "$var"
NUMLINE=0
cat 'foradam.txt' | while IFS=$'\t' read -r word pos other; do
if [ "$word" = '#' ] || [ "$word" = Number ] || [ "$word" = CHI ]; then
NUMLINE=`expr $NUMLINE + 1`
echo "error 1"
echo "$word"
echo "$NUMLINE"
if [ "$word" = $var ] && [ "$pos" = VVN ];then
sed -i '$NUMLINE' d Brown_Adam_CIVForms.txt
echo "error 4"
echo "$word"
echo "$NUMLINE"
else
echo "nothing on this line"
echo "$word"
echo "$NUMLINE"
fi
done
done