小编典典

Bash脚本和/bin/bash^M:错误的解释器:没有这样的文件或目录

all

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

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

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

我执行了以下read/write/execute permissions

chmod 755 my_script

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

一些类似的问题希望看到这些,所以我认为它们可能会有所帮助:

which bash

/bin/bash

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh

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


阅读 97

收藏
2022-03-06

共1个答案

小编典典

在 Windows 环境中创建脚本然后移植到 Unix 环境上运行时,我已经看到了这个问题。

尝试dos2unix 在脚本上运行:

http://dos2unix.sourceforge.net/

vi或者只是使用和测试在你的 Unix 环境中重写脚本。

Unix 使用不同的行尾,因此无法读取您在 Windows 上创建的文件。因此,它将 ^M 视为非法字符。

如果您想在 Windows 上编写文件然后移植过来,请确保您的编辑器设置为以 UNIX 格式创建文件。

在屏幕右下角的 notepad++ 中,它会告诉您文档格式。默认情况下,它会说Dos\Windows. 要更改它,请转到

  • 设置->首选项
  • 新文档/默认目录选项卡
  • 选择格式为 unix 并关闭
  • 创建一个新文档
2022-03-06