シェルスクリプトでリモートファイルを取得する際のエラー

remote-access scp shell ssh unix
シェルスクリプトでリモートファイルを取得する際のエラー

4台のサーバーでscpを実行し、呼び出し側サーバーでファイルを取得するこのスクリプトがありますが、実行すると次のエラーが表示されます。

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

コードは次のとおりです。

#!/bin/sh
servers=("[email protected]" "[email protected]" "[email protected]" "[email protected]")
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  0


ベストアンサー

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

あなたの問題は他の場所にあると思う

1


タイトルとURLをコピーしました