Класс информатики, который я беру, использует bash-скрипт для оценки наших заданий.Однако, поскольку многие студенты используют Windows, я пытаюсь написать эквивалентный командный файл, который они могут запустить на своих устройствах для оценки своей лаборатории.
Действительно важной частью сценария bash является "sdiff -s key_$ f out_ $ f >> details.txt "
Сравнивает файл ключа и выходной файл и печатает различия в файле сведений.
Я не использовал bash раньше и егоПрошло много времени с тех пор, как я использовал пакетные файлы, поэтому я довольно потерян.
Скрипт Bash:
echo ""
echo "Running Diff"
echo "--------"
rm turnin.txt
rm details.txt
for f in file*.txt;
do
f=${f#tests/}
cat out_$f >> turnin.txt
echo "out_$f">> details.txt
sdiff -s key_$f out_$f >> details.txt
if [ ${PIPESTATUS[0]} -eq 0 ];
then
echo "key_$f and out_$f are identical"
else
echo "key_$f and out_$f differ :: check details.txt for details"
fi
done
echo "--------"
Пример файла details.txt, когда файлы совпадают:
out_file1.txt
out_file2.txt
out_file3.txt
out_file4.txt
out_file5.txt
Пример файла details.txt, когда некоторые строки файлов различаются:
out_file1.txt
isBalanced { ( [ ] } ) False | isBalanced { ( [ ] } ) True
isBalanced { { ( ) [ { } ] ( [ ] ) } } True | isBalanced { { ( ) [ { } ] ( [ ] ) } } False
out_file2.txt
out_file3.txt
out_file4.txt
40 2 4 + 2 2 + - * 4 5 / 6 / - | 402 4 + 2 2 + - * 4 5 / 6 / -
48 36 7 % + 2 - | 48 36 7 2 -
out_file5.txt
Любой совет приветствуется!