推送文件的脚本嘿伙计们,感谢你们一直以来的帮助,我还有另一个问题需要一些关于如何解决的见解。
请参阅下面的脚本和我得到的错误。我不明白为什么会这样,我是不是没有正确使用 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。