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