Назад | Перейти на главную страницу

Скрипт для отправки файлов

Сценарий для отправки файлов Привет, ребята! Спасибо, что всегда помогали. У меня есть еще одна проблема, и мне нужно немного разобраться, как ее исправить.

См. Приведенный ниже сценарий и полученную мной ошибку. Я не понимаю, почему это происходит, я неправильно использую продолжение?

#!/bin/bash -x
# @(#) File: filepush.sh
# ---------------------------------------------------------------------------
# Modication History:
# Date       Name                       Description
# 12/10/2014  Emmanuel Iroanya          Script to copy a file to all hosts listed in serverlist  file
# ---------------------------------------------------------------------------

source /opt/mgr/conf/file.conf
source /opt/mgr/conf/dest.conf
HOSTS=/opt/mgr/conf/$1serverlist.conf

echo "Are you sure you want to copy $file to the list of $1 servers"
echo "This may take a while!!"
echo -n "Enter 'y' or 'n':"
read CHOICE
case "$CHOICE" in
        y|yes|Yes) while read line
do
        ssh "$line" "mkdir -p $dest" && scp -r "$file" "$line:$dest"
done < $HOSTS
        continue ;;
     n|no|No) echo "Please try again later"

esac

И ошибка:

./filepush: line 31: continue: only meaningful in a `for', `while', or `until' loop

Просто избавься от continue команда, это не нужно. Оставь ;;Впрочем - так обозначается конец дела.

Цель continue означает пропустить оставшуюся часть тела цикла и начать следующую итерацию. Это не имеет значения вне цикла, поэтому вы получите эту ошибку. Это не похоже на C / Javascript / PHP - вам не нужен специальный оператор в конце кейса, чтобы предотвратить переход к следующему кейсу.