使用“sh”运行脚本时未找到错误

使用“sh”运行脚本时未找到错误

我有一个简单的 shell 脚本:

#!/bin/bash

var="foo"
echo $var

当我运行它时,使用sh shell.shshell作为其文件名,出现以下错误:

: not found: 2: shell.sh:

这是什么意思?

答案1

您是否尝试过sh ./shell.sh代替sh shell.sh
(出于安全原因,当前目录.永远不会在 PATH 变量中)

#!/bin/bash另外,只有当脚本自行运行时才需要脚本的第一行,
例如./shell.sh (在这种情况下不要忘记执行chmod a+x shell.sh

最后,该sh命令调用 dash shell,而不是 bash shell,因此调用 bash 脚本是明智的,而 bash ./shell.sh不是sh ./shell.sh

注意行尾:
Bash 不接受 \r\n (CRLF) 作为行尾(这是 Windows 样式)。
仅允许使用 \n (LF)。

相关内容