刚编写的一个shell文件执行时突然遇到shell文件不能运行,一下子觉得奇了怪了,明明写的shell文件,而且添加了可执行权限,竟然提示这个结果:如下
[[email protected]-2812 opt]$ sudo ./my.sh sudo: unable to execute ./my.sh: No such file or directory
尝试对文件的用vim打开该sh文件,输入:set ff ,显示fileformat=unix,说明没有问题(如果显示fileformat=dos,则有问题,使用命令:set ff=unix 重新设置下文件格式再保存退出)。但是经过几次尝试还是提示这样的现象,最后我打开shell文件,把文件的前几行都删除,特别是首句指定命令解释器的那行代码。将它们都删除再在vi命令中编写保存。这时再执行成功了。
于是想起问题了,我的shell文件是我从windows中的记事本中复制然后在linux的VI中粘贴的,而windows记事本中保存的格式是ANSI,此时粘贴到linux里时文件的头部可能是垃圾字符导致linux下的shell不能识别sh文件。我没有去尝试,如果将记事本保存成utf8格式的话进行复制粘贴应该就不会碰到这样的问题。
原文地址:https://www.cnblogs.com/hmy-1365/p/12123602.html
时间: 2024-10-10 10:04:11