bash中文件的填充限制
我试图让我的“loto”文件自动填充,但我希望只有20行,所以我尝试以下代码: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
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++)
在循环中。该死的,为什么我没有想到像您一样做><它比我的循环更简单!!该死的,为什么我没想过要做像你一样的事呢?<这比我的循环还要简单!!