bash多输入Java测试仪



我当前正在尝试制作一个bash测试脚本,以...

1)进入许多Peoples文件夹

2)编译他们的两个Java文件

3)对编译结果进行两个快速测试,并将输出发送到要保存在其文件夹中的文件

4)获取这四个结果文件的结果,然后将它们倒入一个结果文件中,上面有一个模板,以输入结果

...我目前已经完成了大部分。我唯一的问题是他们的程序要求提供几行投入,例如...

输入数字1:

输入数字2:

输入数字3:

...等等,我不确定如何使其继续投入他们的程序。在我的bash文件中我的硬编码输入后,我需要一个EOF吗?这是我到目前为止所拥有的...

#! /bin/bash

for i in $(find . -maxdepth 1 -type d)
do
    pwd
    pushd "$i"
    pwd
    if [ -f "First.java" ];
    then
        javac -cp . First.java
        echo easyFirst.txt | java -cp . First - > easyFirstResult
        echo hardFirst.txt | java -cp . First - > hardFirstResult
    fi
    if [ -f "Second.java" ];
    then
        javac -cp . Second.java
        echo easySecond | java -cp . Second - > easySecondResult
        echo hardSecond | java -cp . Second - > hardSecondResult
    fi

    printf "easyFirstResultt: hardFirstResultt: easySecondResultt: hardSecondResultt: " > lab5grade.txt
    popd
done

P.S。除了多行输入外,其他所有内容都可以正常工作,我还有两个文本文件,并带有硬编码输入来测试代码。

谢谢!

我看到了

之类的命令
echo easyFirst.txt | java -cp . First - > easyFirstResult

显然向Java程序提供了一系列输入;但是echo这样的命令不转移文件内容,它们仅将文本复制到" Easyfirst.txt"之类的文本中。要将文件easyfirst.txt的内容输送到第一个中,请使用

之类的命令
java -cp . First - < easyFirst.txt > easyFirstResult

(请注意,上面的classPath是.,类是First,而-是第一个无法解释的命令行参数。)

相关内容

  • 没有找到相关文章

最新更新