我的编程空间,编程开发者的网络收藏夹
学习永远不晚

windows下写的shell脚本在linux执行出错的解决办法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

windows下写的shell脚本在linux执行出错的解决办法

在Windows下写了一个shell脚本,上传到Linux下执行时报错:

[root@localhost test]# ./test.sh   
-bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory

test.sh源码:
#!/bin/sh  

echo "test shell "

由于自己对shell不太熟悉,找同事沟通了后了解了原委,主要原因是test.sh是我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令。
我们可以通过vi编辑器来查看文件的format格式。步骤如下:
1.首先用vi命令打开文件
[root@localhost test]# vi test.sh
2.在vi命令模式中使用 :set ff 命令
可以看到改文件的格式为

fileformat=dos

3.修改文件format为unix
使用vi/vim修改文件format
命令::set ff=unix
或者::set fileformat=unix

然后:wq保存退出就可以了

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

windows下写的shell脚本在linux执行出错的解决办法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

windows下写的shell脚本在linux执行出错的解决办法

在Windows下写了一个shell脚本,上传到Linux下执行时报错: [root@localhost test]# ./test.sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No
2022-06-04

如何解决node.js在Linux下执行shell命令、.sh脚本的问题

小编给大家分享一下如何解决node.js在Linux下执行shell命令、.sh脚本的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,引入子进程模块var process = require(child_proce
2023-06-28

windows下上传shell脚本不能运行的解决方法

windows下上传shell脚本至linux,其格式将为dos。dos模式的shell脚本将不能再linux下正确运行,需要修改文件模式为unix。 1 查看文件模式方法linux服务器上,用vi编辑器
2022-06-04

Windows下在CMD下执行Go出现中文乱码的解决方法

在cmd下运行go程序或者是GOLAND的Terminal下运行go程序会出现中文乱码的情况。go run ttypemain.go ���� Ping  [127.0.0.1] ���� 32 �ֽڵ�����: ���� 127.0.0
2022-06-07

让Linux下的cron以秒为单位执行shell脚本的3种方法

需要用到Shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢? 第一种方法: 当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下: cat kick.sh#!/bin
2022-06-04

Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路

由于一些不可抗拒的原因,项目部署后需要定时检测项目是否正常运行,否则将执行重启命令。 在具体实施过程中发现,定时器执行无误,但是重启命令无法正常启动。多方查找发现Shell脚本中的ysLsXjava命令需要引入环境变量方可正常执行。因此做了
2022-06-04

在linux shell脚本中root切换到普通用户执行脚本或命令的方法

需求: 安装deb包,设置程序安装后启动,不需要root权限启动程序 | 不能用root权限启动 其他开机启动选项 方法:root临时降低权限 secUser=`who am i | awk '{print $1}'` #echo
2022-06-04

shell脚本中执行时提示“没有那个文件或目录”的解决办法

出现bad interpreter:No such file or directory的原因,是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来。问题分析:1、将
2022-06-04

让Linux下的cron以秒为单位执行shell脚本的方法有哪些

这篇文章主要讲解了“让Linux下的cron以秒为单位执行shell脚本的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“让Linux下的cron以秒为单位执行shell脚本的方法有
2023-06-09

linux执行sh脚本报错:$’\r’:未找到命令的完美解决方法

本文给大家介绍linux执行sh脚本报错:$’\r’:未找到命令的完美解决方法,原因分析及解决办法给大家讲解的非常明白,感兴趣的朋友跟随小编一起看看吧
2023-02-02

linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法

linux执行sh脚本报错:$’\r’: 未找到命令的解决原因: 命令直接从Windows 复制过来导致的 解决:我是unbutu系统 安装DOS2Unixapt-get install dos2unix执行dos2
2023-02-02

Windows下CMD执行Go出现中文乱码的解决方法

本文主要介绍了Windows下CMD执行Go出现中文乱码的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-21

运行独立pyspark时出现Windows错误的解决办法

这篇文章给大家介绍运行独立pyspark时出现Windows错误的解决办法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我正在尝试在 Anaconda 中导入 pyspark 并运行示例代码。但是,每当我尝试在 Ana
2023-06-22

Linux下使用Shell脚本获取终端宽度的解决方法

获取终端大小时候的学习 在写shell脚本时想输出一行占满整个终端屏幕宽度的 横杠 发现for循环会导致执行缓慢 解决方法:使用yes 命令sed '50q' 显示50行tr -d '\n' 删除
2022-06-04

如何编写shell脚本实现在Linux下不同路径之间的文件进行剪切操作

这篇文章给大家分享的是有关如何编写shell脚本实现在Linux下不同路径之间的文件进行剪切操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需求描述 编写shell脚本实现Linux下不同目录(路径)之间的文件
2023-06-09

编程热搜

目录