GNU/Linux >> Linux の 問題 >  >> Linux

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

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

(cd /c; /a/helloworld)

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

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

(cd /c && /a/helloworld)

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

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

[この回答を改善するためのヒントを提供してくれた Josh と Juliano に感謝します!]


David Schmitt の回答と Josh の提案に似ていますが、シェル プロセスを実行したままにしません。

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

この方法は、通常シェルでコマンドを実行する方法に似ています。実際の違いを確認するには、ps ef を実行する必要があります。 各ソリューションで別のシェルから。


サブシェルを必要とせず、bash に組み込まれているオプション

(pushd SOME_PATH && run_stuff; popd)

デモ:

$ pwd
/home/abhijit
$ pushd /tmp # directory changed
$ pwd
/tmp
$ popd
$ pwd
/home/abhijit

Linux
  1. Linuxでシェルスクリプトを使用してJsonを解析する方法は?

  2. Linux – Linuxからブートローダーを実行する方法は?

  3. Linux:特定のディレクトリでコマンドを実行する方法

  1. シェルスクリプトはどこから実行されますか?

  2. インデックスとは異なるディレクトリを持つローカルホストを機能させる方法は?

  3. シェルからPythonスクリプトを実行する方法

  1. Linuxシェルコマンド/スクリプトをバックグラウンドで実行する方法

  2. Pythonスクリプトを使用してシェルの作業ディレクトリを変更する

  3. 現在のターミナルから新しいターミナルでシェルスクリプトを実行する