我尝试在 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
我不明白
您的外壳(灰烬?)正在尝试执行您的脚本并且正在ENOENT
返回(没有这样的文件或目录)错误代码。这可以指脚本本身,但在这种情况下,它指的是#!
行中指定的解释器。
也就是说,/bin/bash
不存在,这就是脚本无法启动的原因。
解决方法:安装 bash 或(如果您不需要任何 bash 特定功能)将第一行更改为#!/bin/sh
.
这是哈希爆炸程序的怪癖之一。如果没有找到解释器/bin/bash: no such file
(即解释脚本的程序) ,你不会得到像test.sh: not found
.
如果这不在Unix Hater's Handbook中,它应该是。:-)
您可以使用#!/bin/sh
or#!/path/to/bash
或#!/usr/bin/env bash
(在 PATH 中搜索 bash)。