1. ホーム
  2. linux

[解決済み] Linuxのシェルから、カレントと異なる作業ディレクトリでプログラムを実行するには?

2022-03-24 09:25:29

質問

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

例えば、バイナリファイル helloworld を作成し、そのファイル hello-world.txt の中で カレントディレクトリ .
このファイルは、ディレクトリ /a .

現在、私は、ディレクトリ /b . を実行している私のプログラムを開始したい。 ../a/helloworld を取得し hello-world.txt 第3のディレクトリのどこかに /c .

解決方法は?

このようにプログラムを呼び出してください。

(cd /c; /a/helloworld)

括弧の中で、サブシェルが生成されます。このサブシェルは、作業ディレクトリを /c を実行し、次に helloworld から /a . プログラムが終了すると、サブシェルが終了し、親シェルのプロンプト(起動したディレクトリにある)に戻ります。

エラー処理。 ディレクトリを変更せずにプログラムを実行することを避けるため、例えば、スペルミスのある /c を実行するようにします。 helloworld を条件とする。

(cd /c && /a/helloworld)

メモリ使用量を削減する。 hello world の実行中にサブシェルがメモリを浪費するのを避けるため、サブシェルは helloworld を実行します。

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

[ありがとうございました。 ジョシュとジュリアーノ この答えを改善するためのヒントを与えてくれました!] 。