从我之前的答案:https://unix.stackexchange.com/a/254976/30731
如果你有基本的GNU工具(
sh,grep,yes和head),你可以这样做:Run Code Online (Sandbox Code Playgroud)yes | tr \\n x | head -c $BYTES | grep n # Protip: use `head -c $((1024*1024*2))` to calculate 2MB easily这是因为grep在RAM中加载了整行数据(在grepping磁盘映像时我以相当不幸的方式学习了这一点).线,通过所产生
yes,替换新行,将是无限长的,但由不限head于$BYTES字节,从而将grep的加载在存储器$字节.Grep本身对我使用100-200KB,你可能需要减去更精确的数量.如果你还想添加一个时间约束,这可以很容易地完成
bash(不适用sh):Run Code Online (Sandbox Code Playgroud)cat <(yes | tr \\n x | head -c $BYTES) <(sleep $SECONDS) | grep n这
<(command)件事似乎鲜为人知,但通常非常有用,更多信息在这里:http://tldp.org/LDP/abs/html/process-sub.html然后使用
cat:cat将等待输入完成直到退出,并通过保持其中一个管道打开,它将使grep保持活着状态.如果你有
pv并且想要慢慢增加RAM使用率:Run Code Online (Sandbox Code Playgroud)yes | tr \\n x | head -c $BYTES | pv -L $BYTESPERSEC | grep n例如:
Run Code Online (Sandbox Code Playgroud)yes | tr \\n x | head -c $((1024*1024*1024)) | pv -L $((1024*1024)) | grep n将以每秒1MB的速度使用高达1 GB.作为额外的奖励,
pv将向您显示目前的使用率和迄今为止的总使用量.当然,这也可以通过以前的变体来完成:Run Code Online (Sandbox Code Playgroud)yes | tr \\n x | head -c $BYTES | pv | grep n只需插入
| pv |部件即可显示当前状态(吞吐量和总数,默认情况下,我认为 - 否则请查看man(ual)页面).
| 归档时间: |
|
| 查看次数: |
3130 次 |
| 最近记录: |