上一篇文章说到用cywin 在window上面调用linux 的命令(不是Linux命令本身,而是Linux命令对应的window 的模拟命令), 并且使得linux 命令与window 的Dos命令 结合起来,貌似功能强大。恰好有这么一个需求,需要自动化做一个批量转换,而转换器只有window版本的。 本来可以用batch 或者python,但是想试试cywin调用window 的命令的强大。结果悲剧产生了。

1.  window上面的回车换行与Linux 不一样。 结果cywin里面的sh 解析不了window 文件中的回车换行。

--------->解决方法 dos2unix

2.  Window 上面的命令与cywin 命令重名,比如find 命令。

---------->在系统的环境变量里面把cywin的路径放到window系统路径之前。

3.  window的有些命令只认识“\" 作为路径的分隔符,而cywin 缺省是“/”,也认识“\”. 但是当用cywin 的命令生成路径时,其用的是“/”作为路径的分隔符。

悲剧的是,"\" 个符号在Cywin里面用作是转义符, 当以“\"的路径读进来的时候,所有的路径都直接连起来。 比如 C:\A\B\C.txt 变为 C:ABC.txt.

一个临时办法: 将find 生成的路径,比如C:/A/B/C.txt ,用tr先替换为C:\A\B\C.txt,再将其变为 “C:\\A\\B\\C.txt”. 最后被cywin的shell 读进去。

4. 中文支持问题。 在linux 上面terminal 可以直接支持中文,而在win7的命令行上不支持中文,又悲剧了。

安装window7的时候,是英文版。 没有缺省安装中文字体,找下载网址,没有提供,悲剧了。

希望下载后,切换到 win7 powershell上面,就可以。

5. 还有一个不得不提的就是终端terminal, window上面用cmd或者powershell 和linux上面的模拟终端相比,就是人间炼狱。

或许cywin自带有好的终端,但是也没有激情去试一试。

如果是原本就用python,或者是用batch 这些估计都不是问题。悲剧的是用cywin下的模拟Linux命令,彻底悲剧。 本来1个小时的东西,确花一个下午。 cywin 下的linux shell 带来的问题,比解决的问题还要多。

不是原生态的东西,不是主流的东西,如果没有使用经验,使用之前,一定要考虑风险,否则得不偿失!

想想,还是python吧,跨平台,本来就支持window 的命令,又支持linux 下的shell 命令。 还有一个终端交互命令ipython。 以后就用它了。 希望悲剧就此打住!

转载于:https://www.cnblogs.com/zhyg6516/archive/2011/03/23/1993024.html

悲剧,当用cywin 写Linux脚本相关推荐

  1. python写linux脚本_Linux下设置python脚本文件为服务

    (最简单的方式nohup python xxx.py) ------------------------------------------------------------------------ ...

  2. vbscript运行环境linux,用VBScript写Linux脚本——SecureCRT与VBScript

    通过在Windows操作机上使用VBScript控制SecureCRT,这可以操作大部分Linux命令 SecureCRT支持VBScript.JScript.Python和Perl. 一.在哪里使用 ...

  3. sparksql内写linux脚本,shell脚本调用spark-sql

    IOS UIImageView的contentMode属性 红框表示imageView的frame,下面的图片是原图大小UIViewContentModeScaleToFill,       默认,对 ...

  4. linux脚本执行提示: No such file or directory问题解决

    一般是文件格式是dos格式,改成unix 格式即可,方法 用vim打开该sh文件,输入: :set ff  回车,显示fileformat=dos,重新设置下文件格式: :set ff=unix  保 ...

  5. linux java脚本怎么写,linux 执行java脚本

    linux 执行java脚本 [2021-02-02 20:32:43]  简介: linux停止php的方法:首先在后台执行命令"sudo ps -ef|grep php":然后 ...

  6. 在Linux中如何运行C语言写的脚本

    目录 1:Linux下如何运行C语言脚本 2:实例展示 1:Linux下如何运行C语言脚本 Linux别的系统我不知道是不是这个方法,我是用的ubuntu的,其他的我也没测试过,但是ubuntu应该是 ...

  7. linux启动sh文件命令,Linux下如何写 .sh 脚本启动 项目

    Linux下如何写 .sh 脚本启动 项目 创建文件   mealcoupon.sh 内容如下: #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=xhqy_ ...

  8. 写一个阿里云DDNS Linux脚本

    好的,以下是一个阿里云DDNS的Linux脚本: ``` #!/bin/bash 阿里云DDNS脚本 请替换以下变量 AK="your_access_key_id" SK=&quo ...

  9. linux 脚本停止自身,Linux系统定时任务时shell脚本停止执行如何解决?

    Linux系统在进行定时任务的时候,shell脚本突然停止执行了,很多用户不明所以,是什么导致shell不执行了呢?其实原因很简单,下面小编就给大家介绍下Linux定时任务shell脚本停止执行的解决 ...

最新文章

  1. 如何在Zynq-7000上烧写PL Image
  2. 都9102年了,还问GET和POST的区别
  3. Handler消息机制(六):Looper.loop()为什么不会阻塞主线程?
  4. android 沉浸式导航栏
  5. 链式链表的C风格实现
  6. sql in里面可以放多少参数_如何从文本文件读入 SQL 参数
  7. Qt creator5.7 OpenCV249之pyrDown函数(含源码下载)
  8. 【MyBatis框架】SqlMapConfigl配置文件之常用的setting设置
  9. 远程客户端连接linux,远程控制服务(SSH)之Linux环境下客户端与服务端的远程连接...
  10. 查看java运行时参数_查看JVM运行时参数
  11. Xml文件保存值不能及时更新
  12. 用户空间与内核空间数据交换的方式(2)------procfs
  13. 第三章:3.9 引用Django 认证登陆
  14. 全栈project师的毁与誉
  15. 解决win10笔记本电脑无法睡眠只是黑屏问题的方法
  16. 【题解】【AcWing】1526. 洗牌机
  17. 试用期合同可以随时离职吗
  18. SSAO与HBAO学习笔记(持续改进)
  19. 虚拟主机管理器WHM的详细介绍
  20. 冰刃-删除顽固文件的利器!

热门文章

  1. c++ opencv 照片清晰度_PS教程:旧照片翻新修复技巧
  2. Hive map side join入门及测试
  3. Hive提取json字段信息
  4. Zephyr在编译时将二进制文件转化成c语言数组
  5. Effective_STL 学习笔记(三) 使容器里对象的拷贝操作轻量而正确
  6. 2017年上半年软件设计师试题-04
  7. 利用双向注意流进行机器理解
  8. QT For Android 运行的时候找不到手机怎么办?
  9. XML案例(简单的考生成绩管理系统)
  10. 一位软件工程师的7年总结