【发布时间】:2018-04-26 12:39:45
【问题描述】:
我正在尝试构建一个以 openjdk:8-alpine 为基础的 docker 映像。
问题是当我尝试执行 script.sh 时,返回以下消息:
/bin/sh: bin/script.sh: not found
script.sh 正确地位于 bin/ 文件夹中,所以我不知道是什么问题。
有人知道吗?
谢谢。
【问题讨论】:
-
bin/是相对路径。了解我们当前的工作目录会很有帮助,因此我们知道 相对于什么它正在被搜索。 -
另外,脚本的shebang也很重要。如果它使用
#!/bin/bash,除非/bin/bash实际存在,否则您将收到此错误。 (人们不应该在 bash 脚本上使用.sh扩展 - 或者旨在执行而不是作为一个整体来源的脚本 - 但无论他们是否应该或不应该,人们做,所以这是一个非常现实的问题)。 -
@CharlesDuffy,非常感谢您的提问。你说的shebang的问题我这里测试过了,没错。你能输入答案吗?
-
我收到了同样的错误信息,但我的问题是行尾:我的 shell 脚本使用了 ash 不喜欢的 MS-DOS 行尾。一旦我将脚本文件转换为 Unix 行尾,一切正常。
-
@rlandster 请将其作为答案发布,因为这也解决了我的问题。