不能 运行 脚本

Can't run a script

我尝试在 Synology 服务器上通过 SSH 在 linux 中创建脚本

所以我写了一个文件test.sh

#!/bin/bash
echo "this is a test"

我保存了文件。 之后我做了

chmod 755 test.sh

我做了

./test.sh

然后我得到了这个错误

-ash "./test.sh" is not found

文件创建于

/root

没看懂

这是 hash bang 程序的怪癖之一。如果找不到 interpreter(即解释脚本的程序),您不会得到像 /bin/bash: no such file 这样完全有用的错误,而是完全无用且具有误导性的 test.sh: not found.

如果这不在 Unix Hater's Handbook 中,它应该在。 :-)

您可以使用 #!/bin/sh#!/path/to/bash#!/usr/bin/env bash(在 PATH 中搜索 bash)。

您的 shell (ash?) 正在尝试执行您的脚本并返回 ENOENT(没有这样的文件或目录)错误代码。这可以指脚本本身,但在本例中它指的是 #! 行中指定的解释器。

/bin/bash 不存在,这就是脚本无法启动的原因。

解决方法:安装 bash 或(如果您不需要任何 bash 特定功能)将第一行更改为 #!/bin/sh.