我有一个简单的bash脚本,我试图在其中迭代文本文件中的行,并计算不同的度量(移动平均值、导数等(。我在比较索引迭代器和总行数时遇到了一些问题,并产生了一些意外的结果。
input="sample.txt"
lines= wc -l < $input # 14
x=1
[[ ${x} -lt ${lines} ]] && echo "true" || echo "false"
^这返回False(当比较1<14时(
因此,while循环不会运行:
while [[ ${x} -lt ${lines} ]]
do
echo "Welcome $x times"
read p
echo $p
x=$(( $x + 1 ))
done < $input
正如@GordonDavisson所提到的,我没有使用正确的语法将命令的输出分配给变量,所以使用lines=$(wc -l < $input)
而不是lines= wc -l < $input
可以提供预期的结果。