一尘不染

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

linux

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

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

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

这是脚本:

#!/bin/bash

echo Hello World

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

bash testscript.sh

为什么会发生这种情况?


阅读 418

收藏
2020-06-02

共1个答案

一尘不染

确保您的第一行是:

#!/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字符的显示内容。

2020-06-02