我无法从 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
.我个人使用~/bin
shell 脚本,偶尔也使用小型编译程序。