每次我bash scriptname.sh在Debian中使用命令行运行脚本时,都会得到Command Not found脚本的结果,然后得到脚本的结果。
bash scriptname.sh
Command Not found
该脚本可以工作,但是Command Not Found屏幕上总是为每个空行打印一条语句。每个空白行都会导致找不到命令。
Command Not Found
我正在从该/var文件夹运行脚本。
/var
这是脚本:
#!/bin/bash echo Hello World
我通过键入以下命令来运行它:
bash testscript.sh
为什么会发生这种情况?
确保您的第一行是:
#!/bin/bash
输入您的bash路径(如果不是) /bin/bash
/bin/bash
尝试运行:
dos2unix script.sh
这样会将行尾等从Windows转换为Unix格式。即,它从行尾去除\ r(CR),将其从更改\r\n (CR+LF)为\n (LF)。
\r\n (CR+LF)
\n (LF)
有关dos2unix命令的更多详细信息(手册页)
dos2unix
判断文件是否为dos / Win格式的另一种方法:
cat scriptname.sh | sed 's/\r/<CR>/'
输出将如下所示:
#!/bin/sh<CR> <CR> echo Hello World<CR> <CR>
这将输出整个文件文本,并<CR>显示文件中每个\r字符的显示内容。
<CR>
\r