GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan program dengan direktori kerja yang berbeda dari saat ini, dari shell Linux?

Panggil program seperti ini:

(cd /c; /a/helloworld)

Tanda kurung menyebabkan sub-kulit muncul. Sub-kulit ini kemudian mengubah direktori kerjanya menjadi /c , lalu jalankan helloworld dari /a . Setelah program keluar, sub-shell berhenti, mengembalikan Anda ke perintah shell induk, di direktori tempat Anda memulai.

Penanganan kesalahan: Untuk menghindari menjalankan program tanpa mengubah direktori, mis. ketika salah mengeja /c , lakukan eksekusi helloworld bersyarat:

(cd /c && /a/helloworld)

Mengurangi penggunaan memori: Untuk menghindari pemborosan memori subkulit saat hello world dijalankan, panggil helloworld melalui exec:

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

[Terima kasih kepada Josh dan Juliano karena telah memberikan kiat untuk menyempurnakan jawaban ini!]


Mirip dengan jawaban David Schmitt, ditambah saran Josh, tetapi tidak membiarkan proses shell berjalan:

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

Cara ini lebih mirip dengan cara Anda biasanya menjalankan perintah di shell. Untuk melihat perbedaan praktisnya, Anda harus menjalankan ps ef dari shell lain dengan setiap solusi.


Opsi yang tidak memerlukan subkulit dan dibuat untuk bash

(pushd SOME_PATH && run_stuff; popd)

Demo:

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

Linux
  1. Linux – Bagaimana Cara Menjalankan Bootloader Dari Linux?

  2. Dari Mana Skrip Shell Dijalankan?

  3. Cara menjalankan skrip Python dari shell

  1. Bagaimana Mengurai Json Dengan Shell Scripting Di Linux?

  2. Ubah direktori kerja di shell dengan skrip python

  3. Jalankan skrip shell di terminal baru dari terminal saat ini

  1. Cara Menjalankan Perintah / Script Shell Linux di Latar Belakang

  2. Bagaimana Cara Mendapatkan Localhost Dengan Direktori Berbeda Agar Indeks Bekerja?

  3. linux:cara menjalankan perintah di direktori tertentu