bash - shell没有那个文件或目录 - usr bin python3解释器错误没有那个文件或目录
-bash:./my_script:/ bin/bash ^ M:错误的解释器:没有这样的文件或目录 (8)
这个问题在这里已经有了答案:
- shell脚本对编码和行尾是否敏感? 2个答案
我通过本教程学习了解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
,但这不起作用。
Atom有一个内置的行结束选择器包
更多细节在这里: https://github.com/atom/line-ending-selector : https://github.com/atom/line-ending-selector
你的文件有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