Bashのソースコードに実行ビットが必要ないのはなぜですか?

Bashのソースコードに実行ビットが必要ないのはなぜですか?

Bash では、source実行ビットを設定しなくてもスクリプトを実行できます。これは文書化され、予想される動作ですが、実行ビットの使用に違反しませんか?

わかりました、これはsourceサブシェルを生成しません。

ベストアンサー1

sourceまたは同等ですが、標準指す.スクリプトを実行しませんが、読むコマンドをスクリプトファイルに保存し、現在のシェル環境で1行ずつ実行します。

シェルは実行ビットだけを使用すればよいので、実行ビットを使用することに反対することはありません。読むファイルの内容を読み取る権限です。

実行ビットは実行する場合にのみ必要です。走るスクリプト。このシェルはfork()新しいプロセスを使用します。execve()この関数は、スクリプト内で通常の実行可能ファイルでなければならない新しいプロセスイメージを生成します。

おすすめ記事