我有一个简单的 shell 脚本:
#!/bin/bash
var="foo"
echo $var
当我运行它时,使用sh shell.sh
(shell
作为其文件名,出现以下错误:
: 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)。