GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecuto un programa con un directorio de trabajo diferente al actual, desde el shell de Linux?

Llame al programa así:

(cd /c; /a/helloworld)

Los paréntesis hacen que se genere una subcapa. Esta subcapa luego cambia su directorio de trabajo a /c , luego ejecuta helloworld de /a . Después de que el programa sale, el sub-shell finaliza, devolviéndole al indicador del shell principal, en el directorio desde el que empezó.

Gestión de errores: Para evitar ejecutar el programa sin haber cambiado el directorio, p. al haber escrito mal /c , realiza la ejecución de helloworld condicional:

(cd /c && /a/helloworld)

Reducir el uso de memoria: Para evitar que la subcapa desperdicie memoria mientras se ejecuta hello world, llame a helloworld vía ejecutivo:

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

[¡Gracias a Josh y Juliano por darnos consejos para mejorar esta respuesta!]


Similar a la respuesta de David Schmitt, más la sugerencia de Josh, pero no deja un proceso de shell ejecutándose:

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

De esta manera es más similar a cómo normalmente ejecuta comandos en el shell. Para ver la diferencia práctica, debe ejecutar ps ef de otro caparazón con cada solución.


Una opción que no requiere una subcapa y está integrada para bash

(pushd SOME_PATH && run_stuff; popd)

Demostración:

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

Linux
  1. ¿Cómo analizar Json con secuencias de comandos de Shell en Linux?

  2. ¿Desde dónde se ejecuta un script de Shell?

  3. ¿Cómo hacer que Localhost funcione con un directorio diferente al índice?

  4. Cambie el directorio de trabajo en Shell con un script de python

  5. Ejecute un script de shell en la nueva terminal desde la terminal actual

Cómo ejecutar todos los scripts en un directorio en Linux

Cómo ejecutar Shell Script como servicio SystemD en Linux

Cómo ejecutar un alias con Sudo en Linux

Maneras brillantes de cómo ejecutar un programa en Linux

Cómo conectarse con Samba a Linux Active Directory

Cómo escribir y ejecutar un programa C en Linux