我们正在尝试使用 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
这就是我们想要的:
答案1
您分配给question
和answer
变量命令字符串,而不是命令的输出。看起来您想要的是这个:
question=$(sed -n $i{p} file1q.txt)
answer=$(sed -n $i{p} file1a.txt)
这将运行sed
命令并将输出分配给变量。