我尝试在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
我不明白
答案 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)。