bash: $: yes a
[some output] then press Ctrl+Z
$: yes b
[some output] then press Ctrl+Z
次に、bg を 2 回実行し、いくつかの出力を得ました。
abbbbaaaabaaaabbabaaaa abaaabaaa ... a bbbbbbbb など。
なぜaとbが何気なく入れ替わるの?
これは、かなり複雑なトピックであるプロセス スケジューリングを行う必要があります。
このトピックについて、ランダムである理由を正確に説明するのに十分な知識はありませんが、Linux カーネルは、各プロセスが取得する CPU 時間を決定し、他のプロセスがいくつ実行されているか、およびそれらが正確に何を実行しているかに基づいて決定していると言えば十分です。している場合、劇的に変化する可能性があります。
ちなみに、yes は通常、1 行にすべての文字列を与えるわけではないので、
a b
a
b
a
b
これよりも標準的なUNIXコマンドでそれを行うためのより短い方法は考えられません:
awk 'BEGIN{while (1){print "a\nb"}}'
両方のプロセスが同時に実行されているためですか? それはあなたが期待していたものではありませんか?