首页 > 系统相关 >SH文件从Window拷贝到Linux运行失败

SH文件从Window拷贝到Linux运行失败

时间:2024-03-23 19:00:54浏览次数:15  
标签:sed startup Unix sh Window SH Linux 转换 dos2unix

1.问题现象

  bash: ./startup.sh:/bin/bash^M:解释器错误: 没有那个文件或目录

  这个错误通常发生在尝试在Unix-like系统中执行脚本时,脚本文件的行尾结束符是Windows风格的CRLF(回车+换行,即\r\n),而不是Unix风格的LF(换行,即\n)。/bin/bash^M说明了这个问题,^M是字符\r的控制台输出表示,即回车符。

2.解决办法

  使用dos2unix工具将脚本文件的行尾结束符从CRLF转换为LF:  dos2unix startup.sh,dos2unix shutdown.sh,

  如果没有dos2unix,可以使用sed命令进行转换:        sed -i 's/\r//' startup.sh,sed -i 's/\r//' shutdown.sh

  如果不想安装额外工具,可以使用vim编辑器进行转换  

vim startup.sh
:set fileformat=unix
:wq

  或者使用sed直接在命令行中执行转换:  

sed -i 's/\r//' startup.sh

  如果脚本是在Windows下编写的,考虑在Windows下转换为Unix风格再移动到Unix系统。
  转换行尾结束符后,脚本应该可以在Unix-like系统中正常执行

 

  其它sh文件按照上述办法进行处理。

标签:sed,startup,Unix,sh,Window,SH,Linux,转换,dos2unix
From: https://www.cnblogs.com/oumi/p/18091543

相关文章

  • 一文彻底搞懂HashMap
    文章目录1.数据结构2.扩容机制3.常问问题3.1HashMap为什么要树化3.2链表中转红黑树的阈值为什么设为81.数据结构JDK7中的HashMap使⽤的是数组+链表的实现⽅式,即拉链法。当发生哈希冲突时,即多个键映射到同一个数组索引位置时,HashMap会将这些键值对存储在......
  • 关于scrapy框架爬某站出现DEBUG: Redirecting (meta refresh)的问题
    项目场景:Spider框架爬取m.baidu.com搜索结果问题描述访问地址为https://m.baidu.com/s?word=电影&pn=0最后结果变成了http://m.baidu.com/s?cip6=240e:390:6a52:67e5:b0fa:e9d6:226e:376d&word=电影&pn=0&pu=sz%401321_480&t_noscript=jump导致结果不对importjson......
  • shell检测文件是windows格式还是unix
    Shell可以检测文件是Windows格式还是Unix格式。有多种方法可以实现这一目的。一种常用的方法是使用cat命令结合-A选项来查看文件的特殊字符。在Unix或Linux系统中,如果文件的行尾是以^M$结束的,那么它就是Windows(DOS)格式,因为^M代表回车符(\r)。而如果行尾只是以$结束,那么它就是Unix格......
  • wireshark过滤返回包特征
    取证里遇到一道流量题判断黑客弱口令登录网站后台失败的次数根据题意:过滤post请求,发现登录口是/admin/login的这个我们追踪他的tcp流量找到返回包,发现返回的是json格式数据,字符串内容是登录失败,密码错误!根据特征包过滤其他弱口令登录失败发现有6个,说明失败了6次......
  • windows txt怎么转成unix 格式
    将Windows格式的txt文件转换为Unix格式,你可以采取以下几种方法:方法一:使用Notepad++打开Notepad++软件。在菜单栏中,点击“编辑”选项。在下拉菜单中,选择“文档格式转换”。在弹出的子菜单中,选择“转换为UNIX格式”。方法二:使用sed命令打开命令提示符(CMD)或PowerShell。使......
  • linux下的进程
    创建进程众所周知linux由unix发展而来,所以本文先就unix进程先论为快,unix的进程创建很特别,许多其它的操作系统都提供了产生(spawn)进程的机制:首先在新的地址空间里创建进程,读入可执行文件,最后开始执行。unix采用与众不同的实现方式:它把上述步骤分解到两个单独的函数中去执行f......
  • Linux--Flappy_bird实现
    目录voidhandler(intsig): mian:voidinit_curses()intset_timer(intms_t); 小鸟的操作: voidshow_pipe(): voidcreate_list()voidclear_pipe()voidmove_pipe(); test_bird.c完整代码:代码实现:#include<stdio.h>#include<curses.h>#include<signal.......
  • linux分卷压缩解压
    1.压缩:.首先是考虑压缩,无论在windosw还是linux中tar这个压缩工具都有(windows可以使用7z这个工具进行分卷tar的压缩,自行网络下载)7z安装好windows下右键菜单就可以找到linux下压缩命令:格式tarcvzf-filedir|split-d-b50m-filename样例:tarcvzf-./dir|split-d-......
  • Linux 创建用户不创建家目录,配置ssh密钥的方式
    创建用户不创建家目录useradd-Mtest-user创建ssh密钥对文件#一路会车使用默认值ssh-keygen-trsa-mPEM配置test-user使用密钥vim编辑sshd_config配置文件。vim/etc/ssh/sshd_config添加以下内容,AuthorizedKeysFile配置密钥(公钥)文件所属的位置。MatchUsercodi......
  • 把 Windows 装进 Docker 容器里
    本篇文章聊聊如何在Docker里运行Windows操作系统,WindowsinDockerContainer(WinD)。写在前面我日常使用macOS和Ubuntu来学习和工作,但是时不时会有Windows使用的场景,不论是运行某个指定的软件,还是要做一些跨平台软件的功能验证。在去年开源 soulteary/docker-chatgp......