Linux シェルから、現在の作業ディレクトリとは異なる作業ディレクトリでプログラムを実行するにはどうすればよいですか? 質問する

Linux シェルから、現在の作業ディレクトリとは異なる作業ディレクトリでプログラムを実行するにはどうすればよいですか? 質問する

Linux シェルを使用して、現在の作業ディレクトリとは異なる作業ディレクトリでプログラムを起動するにはどうすればよいですか?

たとえば、現在のディレクトリhelloworldファイルを作成するバイナリ ファイルがあります。このファイルはディレクトリ 内にあります。hello-world.txt

/a

現在、私はディレクトリ にいます/b。プログラムの実行を開始し../a/helloworldhello-world.txt3 番目のディレクトリのどこかを取得したいと考えています/c

ベストアンサー1

次のようにプログラムを呼び出します。

(cd /c; /a/helloworld)

括弧によりサブシェルが生成されます。このサブシェルは作業ディレクトリを に変更し/chelloworldから実行します/a。プログラムが終了すると、サブシェルは終了し、開始したディレクトリにある親シェルのプロンプトに戻ります。

エラー処理:ディレクトリを変更せずにプログラムが実行されないようにするには、たとえば のスペルを間違えた場合などに/c、 の実行をhelloworld条件付きにします。

(cd /c && /a/helloworld)

メモリ使用量の削減: hello world の実行中にサブシェルがメモリを浪費するのを避けるには、helloworldexec 経由で呼び出します。

(cd /c && exec /a/helloworld)

[感謝ジョシュとジュリアーノこの回答を改善するためのヒントを提供してくれたことに感謝します。

おすすめ記事