每次我在 Debian 的命令行中使用 bash scriptname.sh
运行脚本时,我都会得到 Command Not found
,然后是脚本的结果。
脚本可以运行,但是对于每个空行,屏幕上总是会打印一个 Command Not Found
语句。每个空行都会导致找不到命令。
我正在运行 /var
文件夹中的脚本。
这是脚本:
#!/bin/bash
echo Hello World
我通过输入以下内容来运行它:
bash testscript.sh
为什么会发生这种情况?
最佳答案
确保您的第一行是:
#!/bin/bash
如果不是 /bin/bash
,请输入您的 bash 路径
尝试运行:
dos2unix script.sh
这会将行尾等从 Windows 转换为 unix 格式。即它从行尾中删除\r (CR) 以将它们从 \r\n (CR+LF)
更改至\n (LF)
.
More details about the dos2unix
command (man page)
另一种判断文件是否为dos/Win格式的方法:
cat scriptname.sh | sed 's/\r/<CR>/'
输出将如下所示:
#!/bin/sh<CR>
<CR>
echo Hello World<CR>
<CR>
这将输出带有 <CR>
的整个文件文本为每个 \r
显示文件中的字符。
关于linux - Bash 脚本在空行上打印 "Command Not Found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7362504/