Bash はどのようにして異なるディレクトリコンテキストでコマンドを実行できるのでしょうか? 質問する

Bash はどのようにして異なるディレクトリコンテキストでコマンドを実行できるのでしょうか? 質問する

非常に特定のディレクトリ内から呼び出される一般的なコマンドがあります。このプログラムの実行可能ファイルは /bin に 1 つだけ存在し、これを正しく実行するには現在の作業ディレクトリが非常に重要です。スクリプトは、実行されるディレクトリ内にあるファイルに影響します。

現在、1 つのディレクトリでいくつかの処理を実行するカスタム シェル スクリプトもありますが、上記のコマンドを別のディレクトリにあるかのように呼び出す必要があります。

これをシェルスクリプトでどうやってやるのでしょうか?

ベストアンサー1

cdサブシェルで使用します。この種のサブシェルを使用する簡単な方法は括弧を使用することです。

(cd wherever; mycommand ...)

そうは言っても、コマンドに必要な環境がある場合は、その環境を使用する可能性のあるものに責任を負わせるのではなく、コマンド自体がその環境を確実にする必要があります (ただし、明確に定義された大規模システムのコンテキストで非常に特殊な状況で使用される内部コマンドの場合は、呼び出し側が既に必要な環境を確保する必要があります)。通常、これは何らかのシェル スクリプト ラッパーになります。

おすすめ記事