関数はbash / shellスクリプト言語に組み込まれているコマンドと同じですか?

関数はbash / shellスクリプト言語に組み込まれているコマンドと同じですか?

はい

$ echo "This is great"
This is great
$ num2=2
$ num3="Three"
$ echo $num2
2
$ echo $num3
Three

エコーをオーバーライドします。

$ echo(){ command echo "The command was redefined"; }
$ echo $num2
The command was redefined
$ echo $?
The command was redefined

それではこれは本当ですか? Unixシェルのすべてのコマンドを実行でき、このように動作できますか?

ベストアンサー1

いいえ。組み込み機能は関数と同じ名前空間を介してアクセスできますが、まだ別のエンティティであり、関数によって非表示になっても組み込みコマンドを介してbuiltinアクセスできます(もちろん、楽しさを増やすために上書きすることもできますbuiltin☺)。また、unset -f echo内蔵機能を元の状態に戻す場合は注意してください。

名前が示すように、組み込み関数も組み込まれ、ファイルから生成されたCコード(bashの場合)として実装されます。echo.def

おすすめ記事