首页 > 其他 > 详细

dos下编辑过sh脚本后无法运行

时间:2019-12-10 00:53:35      阅读:81      评论:0      收藏:0      [点我收藏+]

情景:
同样的的脚本,在不同的机器下运行有的可以成功,有的运行失败,
前提:sh脚本windos下编辑过。

脚本在windows上修改之后,在每行尾部多了个 ^M,导致sh脚本在执行的时候可能shbang解析不了,导致脚本执行不了
报错 Syntax error: “(” unexpected (expecting “then”) 语法解析错误

解决:
在Linux查看^M,需要使用如下命令:
vim下 :e ++ff=unix %

去掉^M的方法:

1.在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。
^M 注意要用 Ctrl + V Ctrl + M 来输入
2.cat filename1 | tr -d "\r" > newfile

  1. sed -e "s/^V^M//" filename > outputfilename
    4.tr -d ‘\015‘ < filename> newfile

简单的,直接使用dos2unix, 将dos下的文件转换成unix文件,可以将后面的^M去掉。

dos下编辑过sh脚本后无法运行

原文:https://www.cnblogs.com/0916m/p/12014133.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!