linux中shell脚本执行报错:-bash: ./databaseCopy.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录

在开发远程脚本上传并执行功能时,遇到脚本执行无结果的问题。原因是上传的脚本格式为.dos,不被Linux支持。解决方法包括使用dos2unix命令转换或在vi编辑器中将文件格式改为unix。执行转换后,脚本能够正常运行。
摘要由CSDN通过智能技术生成

开发远程脚本上传并执行脚本的功能时遇到的问题:
步骤:
1、脚本内容通过sftp上传到远程linux主机根目录下,并生成 test.sh 脚本文件
2、通过ssh执行脚本命令: /test.sh,执行脚本
3、执行没有结果返回
4、登录远程主机发现脚本文件存在,手动执行脚本报错:

[root@192 /]# ./test.sh 
-bash: ./test.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录

原因: 远程上传的脚本格式是.dos,但是linux执行不了此格式的脚本,需要将脚本格式转换成.unix

解决方法:
方法一 使用dos2unix命令

[root@192 /]# dos2unix /test.sh 
dos2unix: converting file tset.sh to Unix format ...

方法二 进入文本编辑,设置文本格式

1、vi /test.sh (编辑脚本)

[root@192 /]# vi /test.sh

2、set ff? ( 查看脚本文件格式)
输入set ff? 查看文件格式
此时文档格式为dos
3、set ff=unix (修改脚本文件格式为unix)

修改脚本文件格式为unix
4、set ff? (查看编辑后的文件格式为unix)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值