bash - shell没有那个文件或目录 - usr bin python3解释器错误没有那个文件或目录




-bash:./my_script:/ bin/bash ^ M:错误的解释器:没有这样的文件或目录 (8)

这个问题在这里已经有了答案:

我通过本教程学习了解bash脚本 ,为我自动执行一些任务。 我正在使用putty连接到服务器。

位于.../Documents/LOG的脚本是:

#!/bin/bash
# My first script
echo "Hello World!"

我执行以下读/写/执行权限

chmod 755 my_script

然后,当我输入./my_script ,我收到了标题中给出的错误。

一些类似的问题想要看到这些,所以我认为他们可能会帮助:

which bash

/斌/庆典

echo $PATH

在/ usr / local / sbin中:在/ usr / local / bin目录:/ usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr / bin中/ MH

我尝试将当前目录添加到PATH ,但这不起作用。



你的文件有Windows行结尾,这是令人困惑的Linux。

删除虚假的CR字符。 你可以用下面的命令来完成它:

 $ sed -i -e 's/\r$//' setup.sh

在终端中运行以下命令

sed -i -e 's/\r$//' scriptname.sh

然后尝试

./scriptname.sh

它应该工作。


在记事本++中,您可以通过按下来为该文件进行专门设置

编辑 - > EOL转换 - > UNIX / OSX格式


对于Eclipse用户,您可以直接从菜单File > Convert Line Delimiters To > Unix (LF, \n, 0Α, ¶)更改文件编码:

或者将New text file line delimiter更改为Other: Unix上的Window > Preferences > General > Workspace面板:


我可以通过在Gedit中打开脚本并使用适当的Line Ending选项保存脚本来解决该问题:

文件>另存为...

Save As提示的左下角,有字符编码和行结束的下拉菜单。 将线路结束从Windows更改为Unix/Linux然后保存。


这是由于在Windows中编辑文件以及在UNIX中导入和执行引起的。

dos2unix -k -o filename应该做的伎俩。


问题在于dos线结束。 以下将转换为unix

dos2unix file_name

注意:您可能需要先安装dos2unix,然后安装yum install dos2unix

另一种方法是使用sed命令搜索并将dos行结尾字符替换为unix格式:

$sed -i -e 's/\r$//' your_script.sh






bash