~のため外部コマンドコマンドを引数として使用します。引数はシェルの組み込みコマンドではなく外部コマンドでなければなりませんか?
私は次の2つの例に基づいてこの質問を投げます。
もし組み込みコマンドコマンドをパラメータとして使用できますか?パラメータは組み込みコマンドまたは外部コマンドにできますか?
そうでない場合は、説明とともに反例を提示してください。
ベストアンサー1
シェル組み込みコマンドはシェルからのみアクセスできるため、外部コマンドでは実行できません。たとえば、外部time
コマンドは他の外部コマンドのみを実行できます。外部コマンドは、シェル組み込み、シェルエイリアス、またはシェル機能を実行できません。
シェル自体は外部コマンド(例:/bin/sh
など)なので、外部コマンドを使用して比較などの/bin/bash
シェルを実行したり、組み込みコマンドを使用してシェルスクリプトを実行したりできます。-c
sh -c 'time echo foo'
sh -c '/usr/bin/time echo foo'
組み込みシェルと同じ名前の外部コマンド(たとえばtime
、、、、...)がある場合、外部コマンドはそのコマンドを実行できますが、echo
同じkill
基本操作を実行してもわずかに異なります(たとえば、他のコマンドラインオプション、異なる出力形式、その他の機能 - 組み込みはkill
シェルジョブ番号で終了することができますが、外部はkill
できません)。
time
あるいは、同じシェル組み込みコマンドは、組み込みコマンドまたはcommand
外部コマンドだけでなく、シェル別名および機能を実行することもできます。