Bash shell脚本中的rm-r(我的第一个*.sh)

Bash shell脚本中的rm-r(我的第一个*.sh),bash,shell,rm,delete-file,Bash,Shell,Rm,Delete File,我想删除Ubuntu 8.04服务器上的一些文件夹 我想启动一个脚本来删除此文件夹 我启动到服务器的ssh会话 我的脚本如下所示: #!/bin/bash rm -r /var/lib/backuppc/pc/PC1/ rm -r /var/lib/backuppc/pc/PC2/ 我按如下方式运行脚本: sh scriptname.sh 但我得到的信息是: rm: cannot remove `/var/lib/backuppc/pc/PC1/\r': No such file or di

我想删除Ubuntu 8.04服务器上的一些文件夹

我想启动一个脚本来删除此文件夹

我启动到服务器的ssh会话

我的脚本如下所示:

#!/bin/bash
rm -r /var/lib/backuppc/pc/PC1/
rm -r /var/lib/backuppc/pc/PC2/
我按如下方式运行脚本:

sh scriptname.sh
但我得到的信息是:

rm: cannot remove `/var/lib/backuppc/pc/PC1/\r': No such file or directory
rm: cannot remove `/var/lib/backuppc/pc/PC1/\r': No such file or directory
很抱歉,我从来没有在linux上使用shell脚本。 我认为这是我的错,因为我不懂基本知识:-(


有人能帮我吗?我必须删除~80个文件夹…:-(

看起来在你的文件夹名称后面有一些“垃圾”字符(即,
\r
)。可以肯定的是,键入
cat-A scriptname.sh
,然后检查你是否能在行尾看到一些奇怪的字符。如果是这样,我认为对你来说最简单的事情(因为你只有几行)就是手动删除这些行的结尾,然后重新键入。(我只说最后两三个字符)
键入
cat-A scriptname.sh
,查看字符是否消失。如果消失,您应该继续使用代码。

您是在Windows上创建脚本的吗?它有回车符(
\r
)和换行符(
\n
)在每行的末尾。Unix/Linux只需要一个换行符,
\n
。在服务器上,尝试,
dos2unix scriptname.sh
。我是否可以建议,如果这是您的第一个脚本,请小心使用
rm-r
和(如果在Unix平台上)永远不要以root身份运行它。我这么说是出于痛苦的个人经历。是的,我用记事本++在Windows上创建了它。Ubuntu 8已经有7年了!我爷爷非常喜欢Ubuntu 8。
:-)
如果他没有死,他会要求你转到14!非常感谢!有一些字符。这是我在windows下创建shell并在unix上运行的方法:1.使用记事本++创建脚本2.选择查看-显示符号-显示所有字符(我看到CR&LF)3.选择编辑-下线转换-unix格式(CR&LF更改为LF)所以我猜这解决了你的问题?我可以建议你开始在Linux中编写bash代码吗?对于“命令行”编辑器,你可以使用
nano
(更简单)或
vim
(可能有点太高级了)。对于“图形用户界面”编辑器,你可以使用
gedit
geany
(这两种颜色都是你的脚本的颜色代码,所以更容易可视化)。谢谢你,TomCho!-是的,我的问题解决了。-我会看看你建议的编辑器。嘿,我不是说因为我想要额外的分数或什么,但是当答案解决了你的问题时,你应该点击“复选标记”除了答案之外。通过这种方式,你可以指出你用它解决问题的社区,你可以获得积分,其他人也可以获得积分,每个人都可以很快看到哪个答案对你有效。这样,整个社区都会受益。你可以阅读更多关于它的信息;)