zoukankan      html  css  js  c++  java
  • Linux命令 dos2unix 的实际应用场景

    问题描述:书接上文springboot之停止与启动服务的脚本,编写杀死服务脚本的时候,总是不行,Linux会提示你类似下面这样的信息:

    killed pid: 
    : arguments must be process or job IDs
    

    思考:我再次仔细审查我的脚本命令

    path=/opt/project/demo/demo-0.0.1-SNAPSHOT.jar
    pid=`ps -ef|grep $path|grep -v grep|awk '{print $2}'`
    echo "killed pid: "$pid
    kill -9 $pid
    

    逐行执行,你会发现一点毛病没有。于是猜测可能和换行符有关,windows 和 linux 下换行符不相同。

    linux:

    windows:

    解决方案:最近看了些 Linux 书籍,发现可以通过 dos2unix 命令进行格式转换。

    语法:dos2unix [kn] file [newfile]

    执行以下命令

    dos2unix -k -n kill.sh stop.sh 
    

    转换完成显示类似下面的信息

    dos2unix: converting file kill.sh to file stop.sh in Unix format ...
    

    参数解释:

    -k :保留该文件原本的 mtime 时间格式(不更新文件上次内容经过修改的时间)

    -n:保留原本的旧文件,将转换后的内容输出到新文件,如:dos2unix -n old new

    然后我直接执行 sh stop.sh,没有错误信息,直接杀死服务。就是这么神奇!

    总结

    1. 我们在 windows 下编写的脚本,在 linux 下使用,一定要注意格式必须为 unix
    2. 在 linux 下编写的脚本,可以直接使用
    3. dos2unix 可以将 dos 文本文件转换为 unix 文本文件
  • 相关阅读:
    排序(六)插入排序
    集合类 collection接口 ArrayList
    面向对象四大特性
    多线程 interrupt()方法
    NIO Channel 管道
    NIOBuffer 缓冲区
    lamdba表达式
    cloneable以及深拷贝和浅拷贝
    Volatile关键字
    线程池
  • 原文地址:https://www.cnblogs.com/ixan/p/12686212.html
Copyright © 2011-2022 走看看