无法运行脚本

时间:2015-09-29 20:55:09

标签: linux ssh vi synology

我尝试在Linux上通过SSH在Synology服务器上创建一个脚本

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

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

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

chmod 755 test.sh

我做了

./test.sh

然后我收到了这个错误

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

该文件是在

中创建的
/root

我不明白

2 个答案:

答案 0 :(得分:3)

您的shell(ash?)正在尝试执行您的脚本,并且正在获取ENOENT(没有此类文件或目录)错误代码。这可以引用脚本本身,但在这种情况下,它引用#!行中命名的解释器。

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

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

答案 1 :(得分:1)

这是哈希爆炸程序的怪癖之一。如果找不到解释器(即解释脚本的程序),你就不会得到像/bin/bash: no such file那样完全有用的错误,但是完全无用且具有误导性{{1} }。

如果 Unix Hater's Handbook 中没有,那应该是。 : - )

您可以使用test.sh: not found#!/bin/sh#!/path/to/bash(在PATH中搜索bash)。