我昨天在设置站点数据自动备份的时候,备份的shell脚本写好后,执行的时候却老是出错.提示的错误信息如下
tar /home/wwwroot\ Cannot stat No such file or directory
文件夹后面莫名其妙多出了一个 “\” 可是在实际编写中看不到…而且我把各行命令复制了后单独执行也全无问题.弄了半个小时后还是无果,令人抓狂!
最后在全球主机论坛发贴求助.一个会员刚好遇到了和我一样的问题.给我指出了问题的所有,他把他的办法写在博客里,地址为 让人抓狂的换行符 他在遇到这个问题搜索的时候,古哥给出了如下的这一段话
如果我们是在windows上编辑的shell文件,上传到linux上,执行的时候可能会出现一些莫名其妙的问题,其原因是在windows上编辑的文件每一行的结尾会有一个回车换行符(十六进制代码为0d0a),而在linux上的文件换行符为0a,0d会莫名其妙的变成一个^M非可见字符。而这个字符会被shell文件读到,影响命令的正常执行。
(出处没考)
我刚好就是直接在WINXP下用notepad++ 编辑完之后直接上传的,怪不得会遇到这样的问题.
我按照那个朋友给出了那两个办法执行了都没有成功…第一个执行后直接把脚步文件清空了…第二个执行了之后奇怪的没有任何效果.
最后我的解决办法是 切换到ubuntu系统下编辑好脚步之后再上传,执行之后果然没有问题了.
当然,如果你没有安装ubuntu(linux系统都可以),这是一个麻烦事.再给出另外一个办法,直接在你的服务器上创建文件,直接使用vi命令在服务器上远程编辑,也可以解决这个问题.
Pingback引用通告: VPS自动定时备份数据教程 | 天空的翅膀
哈哈。还是直接在linux下编辑好。
@vastar
可惜我现在还不能做到完全离开WINXP啊.只是偶尔切换到UBUNTU尝尝鲜,但很少.