Рейтинг:0

использование команды sed для передачи переменных с эхом

флаг gs

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

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

1
2
3
4
5
6
7
8
9
10

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

Это наш код:

#!/бин/баш

#очисти экран
чистый

#сбросить счет до 0
оценка=0

# перебирать файлы, чтобы найти содержимое
я=1
в то время как [ $i -le 10 ]
делать

question="sed -n $i{p} file1q.txt"
answer="sed -n $i{p} файл1a.txt"

если [ вопрос == ответ ]
тогда
    эхо "Правильно"
еще
    эхо "неправильно"
фи

я = $ (( $ я + 1 ))

сделано

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

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

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

вывод без эха

bac0n avatar
флаг cn
`если [[ $вопрос = $ответ ]]`
robot010101 avatar
флаг gs
спасибо за вклад bac0n
Рейтинг:2
флаг cn

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

вопрос=$(sed -n $i{p} файл1q.txt)
ответ=$(sed -n $i{p} файл1a.txt)

Это будет работать сед команды и назначьте вывод в vars.

robot010101 avatar
флаг gs
Спасибо . это то, что мы были после

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.