ошибка при получении удаленного файла в сценарии оболочки - PullRequest
1 голос
/ 26 июля 2011

У меня есть этот скрипт, который выполняет scp на 4 серверах и получает файл на вызывающем сервере, но когда я запускаю его, я получаю следующую ошибку:

syntax error near unexpected token `then'
line 16: `if[[ $line = $texts ]] ; then 

Код выглядит следующим образом:

#!/bin/sh
servers=("root@67.215.227.233" "root@57.245.127.134" "root@67.215.127.135" "root@116.244.128.153")
tlen=${#servers[@]}
count=o
total=0
texts="Untar done you can upload new .tar file"
for(( i=0; i<${tlen}; i++ ));
    do
    echo "in"
    scp ${servers[$i]}:/usr/site/html/test/test.txt /mnt/backups/updateimage
    cat test.txt ; while read line
    do
    echo "in"
    let count++
    echo "$line"
    if[[ $line = $texts ]] ; then 
    echo "true" 
    let total++ 
    else echo "false" 
    fi
   done < test.txt
done
exit 0

1 Ответ

1 голос
/ 26 июля 2011

Поставьте пробел между if и [[

РЕДАКТИРОВАТЬ

Я только что выполнил этот тест, и он правильно оценивается как false

#!/bin/bash

set -eu

texts="Untar done you can upload new .tar file"
line="foo"

if [[ $line = $texts ]] ; then
  echo "true"
else
  echo "false"
fi

Я подозреваю, что ваша проблема в другом месте

...