推送文件的脚本

推送文件的脚本

推送文件的脚本嘿伙计们,感谢你们一直以来的帮助,我还有另一个问题需要一些关于如何解决的见解。

请参阅下面的脚本和我得到的错误。我不明白为什么会这样,我是不是没有正确使用 continue?

#!/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

答案1

只需删除该continue命令,它不是必需的。;;但保留 —— 这是指示案件结束的方式。

的目的continue是跳过循环体的剩余部分,并开始下一次迭代。它在循环之外没有任何意义,所以你会得到这个错误。这不像 C/Javascript/PHP——你不需要在 case 的末尾添加一个特殊的语句来防止进入下一个 case。

相关内容