shell脚本执⾏时出现错误:.myshell:binbash^M:解释器错
误:没有那个⽂件或⽬录
如题,我在ubuntu上创建了⼀个shell脚本⽂件myshell,然后使⽤ntopad++连接ubuntu,编辑myshell,myshell内容如下:
myshell只是简单的在终端打印出hello。但是在ubuntu中执⾏myshell时出现错误如下:
使⽤vim打开myshell,然后在末⾏模式下输⼊set,得到结果如下:
需要注意的是:在windows环境下,回车换⾏保存的是\r\n。⽽在unix环境下, 回车换⾏保存的是\n。对于bash,它只能解析unix⽂件格式,对于windows⽂件格式下的\r\n⽆法识别。上⾯的问题就很显然了,因为通过set命令可以看到myshell⽂件是按dos即windows格式保存的,⾥⾯的换⾏都是按照\r\n保存的,所以,在执⾏myshell时,bash识别不了\r\n就出现了问题。
解决办法:同样⽤vim打开myshell,在末⾏模式下输⼊ set ff=unix 命令,将⽂件格式设置成unix,保存退出即可。如下:
shell脚本返回执行结果在使⽤set查看修改结果:
图上看不到fileformat,因为默认是unix。
再次执⾏myshell,成功运⾏脚本,结果如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论