一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的Notepad++)写好, 然后拷贝文件到linux下, 结果呢, 在执行脚本a.sh的时候, 会出现如下问题:

mracale@ubuntu:~$ ./long.sh
-bash: ./long.sh: /bin/bash^M: bad interpreter: No such file or directory

什么原因呢, 我们有理由怀疑是文件格式问题? 我们用vim a.sh进入a.sh这个文件, 然后在底部模式下, 执行:set ff查看一下, 结果发现fileformat=dos, 看看, 果然是文件格式问题, 那怎么解决呢?

方法一:vim a.sh进入a.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。 然后就可以执行./a.sh运行脚本了。(我亲自试过, 是ok的)

方法二:直接执行sed -i "s/\r//" a.sh来转化, 然后就可以执行./a.sh运行脚本了。(我亲自试过, 是ok的)

方法三:直接执行dos2unix a.sh来转化, 然后就可以执行./a.sh运行脚本了。(我的linux上执行dos2unix ./a.sh失败, 但是不要放弃啊, 加个busybox就可以了), 如下:

dos2unix a.sh
bash: dos2unix: command not found
[taoge@localhost learn_shell]$ busybox dos2unix a.sh

实际上, 经过上述三种方法修改后, 我们都可以再用:set ff再查一下, 发现a.sh的fileformat果然是unix了。   第一种方法最方便, 建议用第三种!

最新文章

  1. 内核编译报错Fedora20(友善)
  2. iOS10 SiriKit QQ适配详解
  3. mysql 数据库迁移
  4. 动态调用WCF服务
  5. jquery动态创建form并提交到.ashx文件处理
  6. SharePoint 101 Code Samples are now available
  7. hive UDF函数
  8. ( 转转)Android初级开发第九讲--Intent最全用法(打开文件跳转页面等)
  9. img图片下有个间隙是为什么
  10. 2014年50个程序员最适用的免费JQuery插件
  11. css如何实现背景透明,文字不透明?
  12. 商派shopex
  13. python学习笔记之列表与元组
  14. PL/SQL 编程(三 )程序包和包体,触发器,视图,索引
  15. 解读java同步类CountDownLatch
  16. PyPI使用国内源
  17. Asp.Net Core 项目搭建基础
  18. ORACLE根据两个表都含有的字段条件来判断两个表连接后有没有数据
  19. java static关键字和代码块
  20. 【新特性】JDK1.5

热门文章

  1. 二分 + 模拟 - Carries
  2. boost 互斥体和锁
  3. 有关Servlet的生命周期说法正确的有( )。
  4. 【BZOJ】1629: [Usaco2007 Demo]Cow Acrobats(贪心+排序)
  5. Openwrt 移植hello world
  6. 如何用MathType编辑出积分符号
  7. mySubmit.js
  8. js截取最后一个斜杠之后的内容
  9. ng2-file-upload上传附件同时传参
  10. 打开wamp中的phpmyadmin出现403的错误