不能 运行 脚本
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
.
我尝试在 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
.