当前位置: 首页 > 面试题库 >

Bash脚本在空行上显示“找不到命令”

黄隐水
2023-03-14
问题内容

每次我bash scriptname.sh在Debian中使用命令行运行脚本时,都会得到Command Not found脚本的结果,然后得到脚本的结果。

脚本可以工作,但是Command Not Found屏幕上总是为每个空行打印一条语句。每个空白行都会导致找不到命令。

我正在从该/var文件夹运行脚本。

这是脚本:

#!/bin/bash

echo Hello World

我通过键入以下命令来运行它:

bash testscript.sh

为什么会发生这种情况?


问题答案:

确保您的第一行是:

#!/bin/bash

输入您的bash路径(如果不是) /bin/bash

尝试运行:

dos2unix script.sh

这样会将行尾等从Windows转换为Unix格式。即,它从行尾去除\ r(CR),将其从更改\r\n (CR+LF)\n (LF)

有关dos2unix命令的更多详细信息(手册页)

判断文件是否为dos / Win格式的另一种方法:

cat scriptname.sh | sed 's/\r/<CR>/'

输出将如下所示:

#!/bin/sh<CR>
<CR>
echo Hello World<CR>
<CR>

这将输出整个文件文本,并<CR>显示文件中每个\r字符的显示内容。



 类似资料:
  • 问题内容: 我有一系列要执行的命令。但是,只要出现“找不到命令”错误,我就需要退出。因此,执行输出后检查不是一种选择 “ $?” 当“未找到命令”并成功时,变量等于零。 问题答案: 如果应该通过脚本完成此操作,则很自然地可以使用条件来表达这种行为:

  • 问题内容: 我在修复此bash脚本中的错误时遇到问题,我真的不知道我做错了什么,感谢您的任何帮助,谢谢 问题答案: 在 之前和 之后 添加一个空格。

  • 问题内容: 我使用的测试脚本包含很多命令,并且会生成大量输出,我使用或和,所以脚本会在发生错误时停止。但是,我仍然很难定位执行停止在哪一行以定位问题。有没有一种方法可以在执行每行之前输出脚本的行号?还是输出命令产生之前的行号?否则任何可以解决我的脚本行位置问题的方法都将提供很大的帮助。谢谢。 问题答案: 您提到您已经在使用。该变量表示值是设置选项时在回显命令行之前打印的提示,默认情况下为空格。 您

  • 在运行命令之后,我尝试运行命令,然后运行命令 ` 有人帮忙吗?

  • 问题内容: 我正在尝试通过nodeschool.io练习。我在运行他们的软件包时遇到了麻烦。 我安装的第一个软件包: 使用以下命令运行软件包 我尝试在其站点上安装的所有其他软件包,但无法在命令行中使用正确的命令运行该程序,例如: 这是我在示例中尝试安装的软件包的链接:functional-javascript- workshop 如您所见,我收到消息 查看其他存在类似问题的帖子,我运行以下命令以查

  • 我正在努力完成nodeschool.io练习。我在运行他们的包时遇到了麻烦。 我安装的第一个软件包: 使用命令 在他们的站点上,我尝试安装的每个其他软件包都无法使用命令行中的正确命令运行程序,例如: 下面是我试图在示例中安装的包的链接:functional javascript workshop 如您所见,我收到消息 查看其他有类似问题的帖子,我运行了以下命令以查看我的路径和保存包的位置: 我尝试