2017-08-09 913 views
0

我有一个Bash脚本,可以自动创建一些SVN文件夹。在这样做的过程中,它会创建一个临时目录。当我尝试删除临时目录与室射频命令,我收到以下错误...rm:无法删除'-rf':没有这样的文件或目录

rm: cannot remove '–rf': No such file or directory 

它似乎认为“-rf”是一个文件名。该命令在命令行上正常工作。

这里是我的脚本...

#!/bin/bash 

if [ $# -lt 1 ]; then 
    echo "Usage: $0 reponame1 reponame2 ..." 

else 
    for var in "[email protected]" 
    do 
     REPONAME=$var 

     mkdir -p ~/temp-$REPONAME/branches 
     mkdir ~/temp-$REPONAME/tags 
     mkdir ~/temp-$REPONAME/trunk 

     svnadmin create $REPONAME 
     svn import ~/temp-$REPONAME svn+ssh://[email protected]/home/username/svnrepos/$REPONAME -m "Initial structure" 

     rm –rf ~/temp-$REPONAME/ 
    done 
fi 

这里是输出

$ ./mkrepo.sh mysvnrepo 
[email protected]'s password: 
[email protected]'s password: 
Adding   /home/username/temp-mysvnrepo/branches 
Adding   /home/username/temp-mysvnrepo/tags 
Adding   /home/username/temp-mysvnrepo/trunk 
Committing transaction... 
Committed revision 1. 
rm: cannot remove '–rf': No such file or directory 
rm: cannot remove '/home/username/temp-mysvnrepo/': Is a directory 

回答

8

您管理输入一个Unicode “EN DASH”(U + 2013),这是不认可rm作为一个正常的连字符“ - ”(U + 002D)所以rm认为它是一个文件名的开始,而不是你的参数。它们看起来很像,但对于一个程序来说它们并不相同。要修复它,只需擦除并再次输入,确保您使用正常的连字符/减号键。

+0

我替换了破折号字符,解决了问题。我不知道如何插入其他短跑,因为我的键盘只有一个短划线键。谢谢您的帮助。 –

0

rm –rf中脚本中的' - '不是它所期望的。 正确的是rm -rf

我希望你能发现差异。

rm –rf rm -rf

相关问题