Linux 向文件中添加字符串而不首先将其存储在内存中

Linux 向文件中添加字符串而不首先将其存储在内存中,linux,Linux,有人能给我解释一下为什么这会占用我电脑上所有的内存吗 这就是我所做的: ./program.sh >> file.txt 下面是program.sh的外观: for i in {0..999999999} do echo SET key_$i 'This is the value of the key' done {0..9999999}在传递到循环的之前展开 使用而不是循环: i=0 while [ $i -le 999999999 ]; do echo SET

有人能给我解释一下为什么这会占用我电脑上所有的内存吗

这就是我所做的:

./program.sh >> file.txt
下面是program.sh的外观:

for i in {0..999999999}
do
    echo SET key_$i 'This is the value of the key'
done

{0..9999999}
在传递到
循环的
之前展开

使用
而不是循环:

i=0
while [ $i -le 999999999 ]; do
    echo SET key_$i 'This is the value of the key'
    i=$(( $i + 1 ))
done

您一定在做一些奇怪的事情,因为您上面发布的命令对内存的影响应该很小。它听起来像是您的
程序。sh
正在内存中存储所有字符串。如果是这样,您需要修复
program.sh
。你没有别的办法。可能是你的程序缓冲了它的输出。好的,我已经发布了脚本的样子。