Próbuje napisać sprawdzarkę w Bash, ma ona działać tak:
Odpalam program tworzący test
odpalam program który powinien dać dobre rozwiązanie
odpalam program który sprawdza czy odpowiedź spełnia warunki
No ale mam problem
#!/bin/bash
odp="DOBRZE\n"
poprawna="DOBRZE\n"
ilosc_testow=0
while [["$odp" -eq "$poprawna"]] ; do
python test_maker.py
./alg < test.in > my.out
./sprawdz < my.out > odp.out
odp=cat odp.out
ilosc_testow=$[ilosc_testow + 1]
echo $ilosc_testow
done
for i in {1..5}
do
play -n synth 0.1 sine 880 vol 0.5 > /dev/null 2>&1
done
ale po próbie uruchomienia dostaje komunikat:
./operat.bash: line 7: [[DOBRZE\n: command not found
(linia 7 to ta z while)
nie wiem też jak przypisać zawartość pliku do jakieś zmiennej żeby sprawdzać czy moja sprawdzarka dała odpowiedź "DOBRZE\n", proszę o pomoc :)
EDIT:
Napisałem coś takiego i działa
#!/bin/bash
difference=""
ilosc_testow=0
while ["$difference" == ""] ; do
python test_maker.py
./alg < test.in > my.out
./sprawdz < my.out > ans.out
difference=$(diff --strip-trailing-cr "ans.out" "dobrze.txt")
ilosc_testow=$[ilosc_testow + 1]
echo $ilosc_testow
done
for i in {1..5}
do
play -n synth 0.1 sine 880 vol 0.5 > /dev/null 2>&1
done
tylko musiałem dodać plik dobrze.txt, ktoś mógłby mi pomóc zrobić to bez tego dodatkowego pliku?