我当前正在尝试制作一个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
,而-
是第一个无法解释的命令行参数。)