bash:意外标记附近出现语法错误

bash:意外标记附近出现语法错误,bash,shell,syntax,Bash,Shell,Syntax,我在.bashrc中有此别名: alias clone='while ! rsync --rsh=ssh -avP --delete --stats --compress-level=9 $1/ $2:$3 | grep -q "Number of files transferred: 0" ; do echo -n .; sleep 1; done' 执行此操作时出错: clone /d/root/tmp cowboy@hicow.com /temp bash: syntax error n

我在.bashrc中有此别名:

alias clone='while ! rsync --rsh=ssh -avP --delete --stats --compress-level=9 $1/ $2:$3 | grep -q "Number of files transferred: 0" ; do echo -n .; sleep 1; done'
执行此操作时出错:

clone /d/root/tmp cowboy@hicow.com /temp
bash: syntax error near unexpected token `/d/root/tmp'
如果我将其放入脚本文件中,一切正常:

#!/bin/sh
while ! rsync --rsh=ssh -avP --delete --stats --compress-level=9 $1/ $2:$3 | grep -q "Number of files transferred: 0" ; do echo -n .; sleep 1; done
并按如下方式执行脚本文件:

./clonescript /d/root/tmp cowboy@hicow.com /temp

非常感谢您的帮助。

别名没有位置参数。而是创建一个函数

clone() {
  while ...
   ...
}