chmod 在 Mac 上不起作用

chmod 在 Mac 上不起作用

我无法从 Mac 上的命令行使文件可执行。这就是我在终端中输入的内容

cd ./Desktop
echo 'say hello' > hello
chmod +x hello
hello

当我双击该文件时它会运行,但我无法从命令行运行它。我只是得到“命令未找到”。

答案1

您的命令中有两个错误。

您的第一个错误是您的文件的可执行格式不正确。 shell 脚本的第一行必须以#!.如果它不以这些字符开头,则它不是 shell 脚本。

某些 shell 具有针对此类格式不正确的 shell 脚本的解决方法。但这些解决方法仅在脚本从 shell 启动时有效,而在脚本从另一个程序启动时无效。此外,不同的 shell 对于格式不正确的 shell 脚本有不同的解决方法。

总而言之,这意味着依赖这些解决方法将导致不可预测的行为,并且您应该始终包含该#!行。例如,您可以输入:

echo '#!/bin/sh' > hello
echo 'say hello' >> hello

另一个错误是您在尝试执行脚本时没有提供脚本的路径。您应该输入:

./hello

当您仅键入 时hello,shell 将在 中搜索PATH命令。出于安全原因.不在PATH.如果您经常需要创建 shell 脚本,最好为这些 shell 脚本创建一个目录并将该目录放入您的PATH.我个人使用~/binshell 脚本,偶尔也使用小型编译程序。

相关内容