Bash文件行计数与Integer比较不正确



我有一个简单的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可以提供预期的结果。

最新更新