当前位置: 首页 > 知识库问答 >
问题:

如何在bash文件中调用docker/javac

卫弘图
2023-03-14

这是我的bash脚本(“compile_java.sh”):

#!/bin/bash
filename=$(basename -- "$1")
extension="${filename##*.}"
filename="${filename%.*}"
echo "$1"
echo "$filename"
echo "$extension"
docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk:15 javac $1

这就是我尝试调用bash脚本(我使用Ubuntu):。compile_java.shTestJava.java

这就是“错误”信息:

TestJava.java
TestJava
java
error: invalid flag: TestJava.java
Usage: javac <options> <source files>
use --help for a list of possible options

谁能给我一个提示吗?

共有1个答案

史朗
2023-03-14

抱歉,bash文件中有特殊字符。这很好:

docker run--rm-v“$PWD”:/usr/src/myapp-w/usr/src/myapp-openjdk:15 javac$1

 类似资料:
  • 问题内容: 我正在研究一个很长的Bash脚本。我想将CSV文件中的单元格读取到Bash变量中。我可以解析行和第一列,但不能解析其他任何列。到目前为止,这是我的代码: 它仅打印第一列。作为附加测试,我尝试了以下操作: $ y是空的。所以我尝试了: $ y是。为什么? 问题答案: 您需要使用而不是: 请注意,对于一般用途的CSV解析,您应该使用专门的工具,该工具可以处理带有内部逗号的带引号的字段,以及

  • 我编写docker文件是为了运行jar文件,而它并没有创建日志文件,请参阅下面的控制台是我的docker文件

  • 问题内容: 我正在尝试在bash脚本的文本文件中间添加一行文本。具体来说,我正在尝试将名称服务器添加到我的/etc/resolv.conf文件中。就目前而言,resolv.conf看起来像这样: 我的目标是在所有其他名称服务器行的上方,但在其上方的任何文本下方。最后,我希望我的resolve.conf文件看起来像这样: 通过bash脚本怎么可能?sed或awk可以执行此操作吗?还是创造性地尝试重新

  • 我有shell文件(deploy.sh)执行以下命令: 当其中一个命令发生错误时,我想停止bash的执行。 shell中的哪个命令可以做到这一点?

  • 问题内容: 我从openjdk:8-jdk-alpine创建了一个docker镜像,但是当我尝试执行简单的命令时出现以下错误: 问题答案: 默认情况下,高山docker映像未安装bash。您将需要添加以下命令来获取: 如果您使用,那么您可以 保持docker映像大小较小。(感谢@sprkysnrky的评论)