1

strace を使用して nice.sh スクリプトの出力をトレースすると、大量の子プロセスが表示されます。

strace -ff -o nice.o ./nice.sh 

すてきな.sh

#!/bin/bash

while /usr/bin/[ 1 ]
do
    echo ..;
done;

一方、以下のスクリプトを実行すると、フォークされた子プロセスは表示されません。

#!/bin/bash

while [ 1 ]
do
    echo ..;
done;

同じことが、echo の /bin/echo と printf の /usr/bin/printf にも当てはまります。一部のコマンドが bash に埋め込まれているということですか? はいの場合、他のコマンドは何ですか?

4

1 に答える 1

2

はい、bash、および他のシェルにはそれぞれ多数のビルトインがあります。

以下は bash のリストと、各ビルトインの付属ドキュメントです。

于 2012-07-18T20:05:51.267 に答える