Shell脚本错误之“-bash: ./test_001.sh: /bin/sh^M: bad interpreter: No such file or directory”

写在开头:shell 菜鸟的第一次自己编写shell时遇到的问题,大神请绕行,多谢!

1.shell 脚本的简单内容如下:

#!/bin/sh
#Date:2018/09/17

main()
{
    echo "---------This is my shell start---------------"
    ls
    echo "---------This is my shell end-----------------"
}
main ..
exit 0

2.将文件保存为test_001.sh后从windows系统移到linux服务器后执行,发现出现上述错误,网上查资料后解决了此问题,具体步骤如下:

(1)出错的原因是因为:在windows上编辑的.sh文件的格式为dos格式,而linux只能执行格式为unix格式的脚本。所以如果是在windows上编写的.sh文件,需要先经过转换为linux上支持的unix格式的脚本。

(2)我们可以通过vim编辑器,查看文件的格式(使用set ff命令):

#!/bin/sh
#Date:2018/09/17

main()
{
    echo "---------This is my shell start---------------"
    ls
    echo "---------This is my shell end-----------------"
}
main ..
exit 0
~
~
~
~
~
~
~
~
~
~
~
~
  fileformat=dos          

(3)然后有两种方式可以实现dos到unix的文件格式的转换。

第一种使用dos2unix命令修改,简单快捷  ,如:

$ dos2unix test_001.sh
dos2unix: converting file test_001.sh to UNIX format ...

第二种,使用set ff=unix命令,需要使用vim先打开文件,然后设置set ff=unix ,接着保存退出即可。

(4)修改完以后,我们可以再次使用set ff命令查看文件的格式是否改变。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只特立独行的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值