Показать статистику
0 голосов
от (2.7тыс. баллов)

Мы пытаемся использовать команду sed для возврата содержимого из 2 файлов (file1q и file1a) — файла вопросов и ответов.

Файл вопросов и ответов одинаковый с номерами в каждой строке:

1
2
3
4
5
6
7
8
9
10

Мы пытаемся повторить результат, однако команда sed повторяется, а не результат команды sed.

Это наш код:

#!/bin/bash

#clear screen
clear

#reset score to 0
score=0

#loop over files to find contents
i=1
while [ $i -le 10 ]
do

question="sed -n $i{p} file1q.txt"
answer="sed -n $i{p} file1a.txt"

if [ question == answer ]
then
    echo "Correct"
else
    echo "incorrect"
fi

i=$(( $i + 1 ))

done

Как вы можете видеть, i = 1, поэтому sed должен печатать строку 1 из обоих файлов... Однако это то, что мы получаем (используя двойные кавычки): вывод с двойными кавычками для echo

вот что мы получаем с одинарными кавычками: вывод с одинарными кавычками для echo

это то, что мы хотим:

вывод без echo

199 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Вы назначаете переменным question и answer командные строки, а не вывод команд. Похоже, вы хотите этого:

question=$(sed -n $i{p} file1q.txt)
answer=$(sed -n $i{p} file1a.txt)

Это запустит команды sed и назначит выходные данные переменным.


...