【发布时间】:2012-10-28 22:03:10
【问题描述】:
我目前正在尝试制作一个 bash 测试脚本,它将...
1) 进入多人文件夹
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 "easyFirstResult\t: \hardFirstResult\t: \easySecondResult\t: \hardSecondResult\t: " > lab5grade.txt
popd
done
附:除了多行输入之外,一切正常,我有两个带有硬编码输入的文本文件来测试代码。
谢谢!
【问题讨论】:
-
您是否考虑过使用Apache Ant 或Maven 之类的工具?一旦您的项目变得更加复杂,它们可以提供很大帮助。 (虽然 Maven 本身会导致你白发……)