zoukankan      html  css  js  c++  java
  • 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
    3. sed -e "s/VM//" filename > outputfilename
    4.tr -d '15' < filename> newfile

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

  • 相关阅读:
    1.13 Flask
    1.12 Flask 复习
    1.11 flask
    1.10 flask
    1.9 flask
    1.8 flask 路由
    sql server存储过程
    Ajax学习笔记
    随机密码字典生成器
    jRazor
  • 原文地址:https://www.cnblogs.com/cizao/p/12014133.html
Copyright © 2011-2022 走看看