コマンドをパラメーターとして使用する外部コマンドのパラメーターに制限はありますか?

コマンドをパラメーターとして使用する外部コマンドのパラメーターに制限はありますか?
  1. ~のため外部コマンドコマンドを引数として使用します。引数はシェルの組み込みコマンドではなく外部コマンドでなければなりませんか?

    私は次の2つの例に基づいてこの質問を投げます。

    外部コマンドは、time外部コマンドの時間のみを測定できます。

    外部コマンドは、which外部コマンドに関する情報のみを表示できます。

  2. もし組み込みコマンドコマンドをパラメータとして使用できますか?パラメータは組み込みコマンドまたは外部コマンドにできますか?

そうでない場合は、説明とともに反例を提示してください。

ベストアンサー1

シェル組み込みコマンドはシェルからのみアクセスできるため、外部コマンドでは実行できません。たとえば、外部timeコマンドは他の外部コマンドのみを実行できます。外部コマンドは、シェル組み込み、シェルエイリアス、またはシェル機能を実行できません。

シェル自体は外部コマンド(例:/bin/shなど)なので、外部コマンドを使用して比較などの/bin/bashシェルを実行したり、組み込みコマンドを使用してシェルスクリプトを実行したりできます。-csh -c 'time echo foo'sh -c '/usr/bin/time echo foo'

組み込みシェルと同じ名前の外部コマンド(たとえばtime、、、、...)がある場合、外部コマンドはそのコマンドを実行できますが、echo同じkill基本操作を実行してもわずかに異なります(たとえば、他のコマンドラインオプション、異なる出力形式、その他の機能 - 組み込みはkillシェルジョブ番号で終了することができますが、外部はkillできません)。

timeあるいは、同じシェル組み込みコマンドは、組み込みコマンドまたはcommand外部コマンドだけでなく、シェル別名および機能を実行することもできます。

おすすめ記事