【发布时间】:2011-11-13 19:39:38
【问题描述】:
每次我在 Debian 的命令行中使用bash scriptname.sh 运行脚本时,我都会得到Command Not found,然后是脚本的结果。
脚本有效,但屏幕上总是为每个空行打印一个Command Not Found 语句。每个空行都会导致找不到命令。
我正在从/var 文件夹运行脚本。
这是脚本:
#!/bin/bash
echo Hello World
我通过输入以下内容来运行它:
bash testscript.sh
为什么会发生这种情况?
【问题讨论】:
-
说真的,网络上充斥着这样的抱怨。 Shell 是非常弱和蹩脚的解释器。这里和那里很少,它失败了。您甚至必须查看脚本中的所有空格。由于不可见的换行符,我的脚本失败了。可能这只是空格很重要的脚本语言!
-
使用
bash -x scriptname.sh跟踪错误。 – 在我的情况下,它是在 Windows 下保存的 sh 文件,带有 VSCode 和行结尾为“CRLF”。在右下角的 VSCode 中,您可以将行终止符从“CRLF”更改为“LF”。上传了这个文件,最后可以用bash scriptname.sh执行。 -
这绝对是stackoverflow.com/questions/39527571/… 的副本,但这里的许多答案解释了由于其他原因导致“找不到命令”的许多其他情况。如果您的问题不是专门针对空行,建议访问者阅读所有答案。
-
@Atul 我完全同意你的看法。这就是我用 JavaScript 编写脚本的原因,这使得重用模块化代码变得更加容易。 Python 也适用于此。