bash中文件的填充限制

bash中文件的填充限制,bash,shell,limit,Bash,Shell,Limit,我试图让我的“loto”文件自动填充,但我希望只有20行,所以我尝试以下代码: >loto if [ -f loto ] then nbligne=$(cat loto |wc -l) while [ $nbligne -lt 20 ] do echo $((RANDOM%1000)) >> loto done nbligne+=$(cat loto |wc -l) fi 但是循环不会停止,并且文件会无限期地填充您没有更

我试图让我的“loto”文件自动填充,但我希望只有20行,所以我尝试以下代码:

>loto
if [ -f loto ]
then
    nbligne=$(cat loto |wc -l)
    while [ $nbligne -lt 20 ]
    do
        echo $((RANDOM%1000)) >> loto
    done
    nbligne+=$(cat loto |wc -l)
fi

但是循环不会停止,并且文件会无限期地填充

您没有更改循环中的变量,因此条件永远不会为false

也许你只想输出20个数字

#! /bin/bash
for i in {1..20} ; do
    echo $(( RANDOM % 1000 ))
done > loto

您没有在循环中更改变量,因此条件永远不会为false

也许你只想输出20个数字

#! /bin/bash
for i in {1..20} ; do
    echo $(( RANDOM % 1000 ))
done > loto

您应该在
循环中增加/更新
nbligne
,而
+=
不会做您认为它会做的事情
+=
将执行文本字符串连接,除非您使用
declare-i nbligne
将其声明为整数,在这种情况下,它将以算术方式将值添加到自身。但是,您应该只需要向它添加一个,这样循环内的
((nbligne++)
就可以了。您应该在
中增加/更新
nbligne
,而
循环:)
+=
不会做您认为它会做的事情
+=
将执行文本字符串连接,除非您使用
declare-i nbligne
将其声明为整数,在这种情况下,它将以算术方式将值添加到自身。但是,您应该只需要向它添加一个,所以
((nbligne++)
在循环中。该死的,为什么我没有想到像您一样做><它比我的循环更简单!!该死的,为什么我没想过要做像你一样的事呢?<这比我的循环还要简单!!