【问题标题】:Bash script getting "No such file or directory" error?Bash脚本得到“没有这样的文件或目录”错误?
【发布时间】:2019-01-11 21:09:27
【问题描述】:

我有一个名为 args.sh 的 bash 脚本。它只是应该打印出从命令行传入的参数。

#!/bin/bash 
echo "Argument passed in: $1"

我尝试过chmod +x args.sh,但我得到了-bash: ./args: No such file or directory。我在 Mac 上执行此操作。

如何通过调用./args(不带 .sh 文件扩展名)构建可执行文件来调用脚本?

非常感谢任何帮助,谢谢。

【问题讨论】:

  • 重命名为args
  • 如果您是在 Mac 上执行此操作,为什么要标记您的问题 linux
  • 您应该在您正在使用的目录中显示ls -Al a* *.sh。然后,使用信息编辑您的问题。

标签: bash macos shell terminal


【解决方案1】:

linux/unix 上的可执行文件没有扩展。因此,如果您将文件命名为“args.sh”,那么您的可执行文件就是“args.sh”。如果你想用“./args”调用它,将它重命名为“args”。

内核然后通过查看文件开头的“魔术字符串”来确定如何加载可执行文件。在这种情况下,魔术字符串是“#!” (也称为“shebang”)告诉内核使用该行其余部分的可执行文件来运行此脚本,在您的情况下为“/bin/bash”。其他魔术字符串会告诉内核它是 ELF 格式或 a.out 格式的二进制文件,或者你有什么,以便内核知道如何加载它们,或者它根本无法加载它们(例如,如果它是 RISC /6000 可执行 AIX)。

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 2020-05-09
    • 2017-08-06
    • 2016-06-25
    • 2021-03-15
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多