【实习记】2014-08-26都是回车惹的祸——shell脚本必须是unix行尾

事情由起:
svn的url在excel里,我复制到txt文本下,vi做些文本处理,只提取了url,保存为url.txt。
再用vi处理url.txt,加上svn checkout等词,变成可以运行的svn.sh。每一行都是
svn checkout .../proj_name/trunk  proj_name/trunk
......

触发动作:
bash svn.sh
shell回显一切正常,似乎没有问题。

有什么问题呢?问题就在与我windows下的‘\r‘(回车)一直带到svn.sh里了,linux下建的目录都是"trunk\r"。

当时不是这样发现的,最先我用rsync同步到windows虚拟机用ide打开目录后,添加文件,显示trunk?目录,但双击不能进去。
出现这个问题是source insight, 而code::blocks没有问题。

之前也奇怪,为什么
while read line; do echo "mv $fn ${fn%?}"; done < name.txt
显示怪异,现在知道了,$fn带有回车见,输出坐标返回第一列继续输出,所以出现怪异的文章被覆盖异常。
如果最后一个是其他字符,就可以那样去纠正。
for fn in $(find . -name trunk?); do mv $fn ${fn%?}; done;

最后只能删除,然后把svn.sh变成unix行尾,再执行bash svn.sh!

bash确实做得不够好,处理回车键时显得笨。

时间: 2024-12-28 17:38:37

【实习记】2014-08-26都是回车惹的祸——shell脚本必须是unix行尾的相关文章

都是回车惹的祸- Redhat中cron之奇异行为索源

最近接管了一个CentOS的系统.交接时发现时钟飘逸5-6分钟. 问到原管理员时,答曰,每小时都与NTP服务器同步,不可能啊? 看来是个糊涂人.只能自己找原因了. 先看其crontab的内容吧. #crontab 7 * * * * /usr/sbin/ntpdate 10.130.68.1 >/dev/null 2>&1 写法确实没错.每个小时的第7分钟都去访问10.130.68.1. 这地址是个Cisco的交换机,其他系统也在利用,没有问题. 可是,这cron真的执行了么?查log

都是编译器惹的祸

都是编译器惹的祸,布布扣,bubuko.com

[ 转自 果壳 原著matrix67 ]Android计算器低级错误?都是二进制惹的祸!

Android 计算器惊现超级大 bug!在 Android 的计算器程序里输入 14.52 - 14.49,计算器竟然说它等于 0.0299999999!其实,这已经是计算机的老毛病了.计算机用二进制来表示数,将会不可避免地产生误差. 听说了 Android 的超级大 bug,我立即在自己的 HTC Hero 上试了一下,果然正如众人所说, 14.52 - 14.49 = 0.0299999999.稍作试验便可发现,一些更为简单的算式也会出现类似的问题,例如在 Android 计算器中输入 1

2014/08/26

早汇报来了,先说昨天,下午4点去C02开讲,哗啦啦说了半小时,发现没人听了都,主管进行了深刻的点评,感觉说的很是到位,比方说做事需要聚焦但不要钻牛角尖,需要去发现问题,要有对问题的敏感度,以及怎样去讲明白一个流程,不是大而全. 要从项目.业务入手,讲述背景,分析问题,怎样去设计.执行,到最后的自动化,加上自己的总结,这样才是一个完整的思路和工作的梳理,能体现自己的价值. 我觉得要是能这样做确实是很清晰的,是努力达到的方向,下个月的报告,一定要做到这点,清晰简洁明了! 那,一天除了工作就是生活了,

都是类型惹的祸——小心unsigned

正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等.大家有没想过,就是因为这些不同的类型,而使大家编写的看似非常正确的程序出现了预想不到的错误呢? 一.迷惑人的有符号下无符号数的比较操作 废话不多说,马上来看一下例子,让你先来体验一下这个奇妙的旅程,源代码文件名为unsigned.c,源代码如下: [cpp] view plaincopyprint? #inc

实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)

之前说过了关于vector的insert()方法,把vector B的元素插入到vector A中,vector A中的结果我们可想而知,但是vector B中的元素还会如何? 看看之前写过的程序: #include <iostream> #include <vector> int main () { std::vector<int> myvector (3,100); std::vector<int>::iterator it; it = myvector

记2014年暑假,一个项目,三个框架

在开始动笔之际,看了下博文的标题,突然觉得欠妥,"记2014年暑假,一个项目,三个框架",既然是暑假说明还是学生,今年的6月我已经毕业了,但还在学习,并且在向一名合格的架构师狂奔.你说我矫情也好,做作也罢,现实就是这样的,厚着脸说:咱也矫情一回. 整个暑假,总共四十天,从7月中旬开始到8月底,从技术上看,整个假期都处于看视频,做项目,作总结的过程中,前二十天跟着视频做了DRP的项目,后二十天(到8月26日),看完了三个框架的视频,总结还在继续:从英语上看,这个假期是从听走向说的开始:从

Bootstrap 3.2.0 源码试读 2014/08/09

第一部分 normalize.css 104至110行 code,    /* 编辑代码 */ kbd,    /* 键盘输入的文本 */ pre, samp {    /* 范例,sample的简写 */   font-family: monospace, monospace;    /* 这个地方应该是写错了,第二字体应该是serif */   font-size: 1em; } 设置字体的大小为1em,字体为monospace. 111至119行 button, input, optgro

2014/08/05 – Backbonejs

[来自: Backbone.js 开发秘笈 第2章] Model API: (function ($) { //define Model Class ------------------- var ModelClass = Backbone.Model.extend({ defaults: {},//Backbone 支持在模型初始化时动态进行定义 [支持多行表达式设置默认值,即值为函数] initialize: function () { //模型对象被创建后即被调用 /* 注:如定义了默认属