bash: $: yes a
[some output] then press Ctrl+Z
$: yes b
[some output] then press Ctrl+Z
然后,执行两次bg并得到一些输出:
a b b a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a…一个B B B B B B B B B B B等
为什么a和b如此随意地互换?
这必须做进程调度,这是一个相当复杂的主题。
我对这个主题的了解不够,无法准确解释为什么它是随机的,但它足以说明Linux内核决定每个进程获得多少CPU时间,并且基于有多少其他进程也在运行以及它们究竟在做什么,它可以发生巨大变化。
因为两个进程同时运行?这不正是你所期望的吗?
顺便说一下,yes通常不会在一行上给出字符串,所以我假设你的意思是你想要:
b
b
b
对于标准的unix命令,我想不出比这更短的方法了:
awk 'BEGIN{while (1){print "anb"}}'