shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案)
在notepad上设置:编辑->档案格式转换->转换为UNIX格式
另外我觉得在自己使用的编辑器上显示回车、换行符也许是个好的习惯吧
 
有关于回车,换行的故事:转送门在这里,猛击吧!http://blog.sciencenet.cn/blog-948919-697160.html
 
关于回车换行问题,我的”痛苦“经历(传递的字符串参数有\r字符)
 
原由:我需要cygwin下运行shell 脚本;脚中调用python子脚本且同时传递参数
我的脚本内容是这样的(调用的python脚本中会打印传递给他的参数)
===============================================
#!/bin/sh
# ============================
# funcion:
# autor:luogw
# date:2013/6/27
# usage(in cygwin): ./checkCompatibility checedFileName(.csv format) newFileName(.csv format,Added Compatibility problem)
# ============================
tempFileName='temp4Compatibility.csv'
rm -f temp4Compatibility.csv
python ./cleanPath.py $1 $tempFileName
python ./checkNew.py temp4Compatibility.csv $2 filter.csv filter_key.csv
rm -f $tempFileName
================================================
运行情况如下:大家请注意 tempFileName的值,传给python脚后!添加了\r\r

 
我们先看看脚本windows文档格式与unix文档格式载图,显示回车换行符;notepad的设置 : 视图->显示字符->显示所有字符
 
windows格式(出问题时脚本的状态)

unix格式(ok的状态)

 
个人理解:
在cygwin/类unix环境下运行的脚本,如果shell脚本是于windows文档格式保存的(有回车,换行符)
因为unix环境下shell会把回车符"\r"当普通的字符处理,故会造成字符串追加。

 
 
 
另外windows文档格式的shell脚本,在linux/unix环境下运行时是会出现:bash: ./checkCompatibility.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录 (解决方案就是去掉回车了,转给unix文档格式)
但是cygwin环境下是可以正常运行的,很变恋吧,但想想它本身实现就是在windows下提供类unix的运行环境,它能处理windows文档格式的shell脚本也是不可厚非的事
只是得需要注意我今天所遇到的问题

shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)的更多相关文章

  1. 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法

    今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...

  2. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  3. Shell脚本对Linux进行文件校验

    Shell脚本对Linux进行文件校验 一.需求 有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一 ...

  4. shell 脚本在linux中的应用

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country=&qu ...

  5. shell脚本计算Linux网卡流量

    本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...

  6. 查看当前支持的shell,echo -e相关转义符,一个简单shell脚本,dos2unix命令把windows格式转为Linux格式

    /etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bi ...

  7. 关于windows下编写的shell脚本在linux下无法运行报错问题

    首先,你写的shell脚本必须是正确的, 其次,无法运行的原因:因为windows下的换行是两个字节,而你上传到linux,linux下换行是两个字节,所以编译的酒不正确的,导致无法 运行脚本, 这种 ...

  8. Shell获取Aix/linux/unix机器上db2和os的信息并上传到指定服务器

    (之前写过一篇类似的文章,当时传输文件用的是ftp,因为项目觉得ftp不够安全所以这次换成了scp,同时对脚本的一些地方也做了一些调整) 其实做这个东西还是因为项目的需求,需要获取某些机器(目前主要是 ...

  9. 使用Shell脚本对Linux系统和进程资源进行监控

    ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...

随机推荐

  1. android如何判断服务是否正在运行状态

    如何检查后台服务(Android的Service类)是否正在运行?我希望我的Activity能够显示Service的状态,然后我可以打开或者关闭它. /** * 判断服务是否处于运行状态. * @pa ...

  2. 12个有趣的c面试题目

    1.gets()函数 问:请找出以下代码里的问题: #include<stdio.h>  int main(void)  {      char buff[10];      memset ...

  3. MPEG-DASH on IIS Practice in Action-attach

    1. 准备  IIS Media Service已经安装准备好(如上),注意需要在2008上安装,2003安装不了,或者就算能安装也很麻烦 一个或多个码率的媒体文件如MP4已经准备好 DASH MPD ...

  4. QT最简单的程序执行过程分析(内含C++基础知识)

    打开QT Creator,新建一个“应用程序-Qt Widgets Application”项目: 输入名称scdc之后点击下一步. 在“构建套件”这个页面中直接点出下一步,然后再输入自己的类名Dat ...

  5. leetcode第七题--Reverse Integer

    Problem: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 ...

  6. 证明中序遍历O(n)

    算法导论12.1 什么是二叉搜索树 二叉搜索树应满足的性质: 设x是二叉搜索树中的一个结点.如果y是x左子树中的一个结点,那么y.key <= x.key.如果y是右子树中的一个结点,那么y.k ...

  7. vstemplate关键点纪要

    创建Visual studio项目模板 vstemplate关键点纪要 经过多次的实验,终于完美生成一个.VSIX的项目模板安装包,其中遇到不少问题与挫折,久经google/baidu/自行摸索.终于 ...

  8. 【转】在iOS开发中使用FMDB

    本文转载自:唐巧的博客 在iOS开发中使用FMDB APR 22ND, 2012 前言 SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iO ...

  9. malloc内存分配与free内存释放的原理

    malloc内存分配与free内存释放的原理 前段时间一直想看malloc的原理,在搜了好几篇malloc源码后遂放弃,晦涩难懂. 后来室友买了本深入理解计算机系统的书,原来上面有讲malloc的原理 ...

  10. iOS推送服务细节回顾

    iOS推送服务细节回顾 之前在做推送功能时候,就总结过一系列证书的制作,OC代码实现和服务器搭建等经验.又过了一段时间了,前前后后对推送服务做了多次的完善和优化,有iOS客户端的,还有本地服务器端的. ...