bash – 在Ubuntu上运行在记事本(Windows)中创建的脚本

我在Windows上创建了一个记事本文件并将其复制到Ubuntu.该文件包含一些iptables规则.使用chmod x使文件可执行并执行后,它无法正常工作.

但是,当我创建一个Ubuntu(gedit)文件并从记事本文件中复制相同的内容,使其可执行并运行它,它工作.

我该怎么做才能使记事本文件在Ubuntu上运行?

最佳答案
Windows和Linux具有不同的行尾符号.

您可以安装修复它的dos2unix实用程序:

sudo apt-get install dos2unix

以这种方式运行:

dos2unix -n winfile.txt linuxfile.txt

还有unix2dos实用程序.

Windows-to-Linux转换也可以在不安装任何特殊软件的情况下完成

 tr -d '\r' < winfile.txt > linuxfile.txt

注意:输入和输出文件必须不同.

sed版本将“就地”编辑文件:

 sed  -i 's/\r//g' file.txt

或写入另一个文件:

 sed 's/\r//g' winfile.txt > linuxfile.txt

转载注明原文:bash – 在Ubuntu上运行在记事本(Windows)中创建的脚本 - 代码日志