dos下编辑过sh脚本后无法运行
Posted 0916m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dos下编辑过sh脚本后无法运行相关的知识,希望对你有一定的参考价值。
情景:
同样的的脚本,在不同的机器下运行有的可以成功,有的运行失败,
前提: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 "
" > newfile
- sed -e "s/^V^M//" filename > outputfilename
4.tr -d ‘ 15‘ < filename> newfile
简单的,直接使用dos2unix, 将dos下的文件转换成unix文件,可以将后面的^M去掉。
以上是关于dos下编辑过sh脚本后无法运行的主要内容,如果未能解决你的问题,请参考以下文章
Linux (二十四)从windows上编辑shell的脚本,在linux运行报错的解决方案
sh [mac删除默认ABC输入法] mac默认ABC输入法,默认无法使用“系统偏好与设置”中删除。需要运行本脚本,运行后立即重启系统。生效修改