【问题标题】:Writing a bash script to run a java program with command line arguments? [duplicate]编写一个bash脚本来运行一个带有命令行参数的java程序? [复制]
【发布时间】:2017-04-18 19:45:36
【问题描述】:

我编写了一个维护银行帐户数据库的 Java 程序(这是一个课程作业),我想创建一个 bash 脚本来运行。运行程序时,您必须输入“i”、“h”、“t”或“?”让它执行任务。我想采用这些命令行参数并在 bash 中运行该程序时使用它们。例如,如果脚本被命名为accounts,我希望能够输入accounts -i 并且脚本会使用已经输入的i 命令启动程序并执行该参数的任务?我该怎么做呢?

【问题讨论】:

  • man getopthelp getopts

标签: java bash unix


【解决方案1】:

最好的办法是让您的 Java 程序接受参数。

但我认为所有这些仅用于教育目的,并且所述 Java 程序从标准输入中读取。

通常程序的配置应该作为参数:

$ ./my_program --configA --configB --optC=valD

但在您的情况下,您似乎有一个提示用户提问的交互式程序:

$ ./my_program
Question 1?
> Answer1
Question 2?
> Answer2

$ 是命令提示符,> 是用户输入。

无论如何都可以从管道、文件等提供标准输入:

my_program1 | my_program2

my_program1 的输出作为my_program2 的输入。

my_program < my_file

my_program 的输入来自文件 my_file

您也可以从此处的文档中提供输入,语法为 &lt;&lt;MARKER 并以 MARKER 结尾:

my_program << NAME_DOESNT_MATTER
line1
line2
line3
NAME_DOESNT_MATTER

这会将三行放入my_program

在 bash 中,它只是引用位置参数,因为它们被称为 $1$2、..$n

$ cat my_shell_program
#!/bin/bash
echo "$2" "$1"
$ ./my_shell_program "hello world" "John Doe"
John Doe hello world

现在你应该可以弄清楚其余的了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2014-03-27
    • 2021-07-27
    • 2011-04-05
    相关资源
    最近更新 更多