Bash Wiki
Posts (Latest 30 updated) :
Read all
Contents:
  1. [Linux] Bash exec uso equivalente: Ejecutar un comando en el contexto actual
    1. Overview
    2. Usage
    3. Common Options
    4. Common Examples
    5. Tips

[Linux] Bash exec uso equivalente: Ejecutar un comando en el contexto actual

Overview

El comando exec en Bash se utiliza para ejecutar un comando reemplazando el proceso actual de la shell. Esto significa que, al usar exec, el proceso de la shell que ejecuta el comando se reemplaza por el nuevo comando, y no se regresa a la shell original después de que el comando finaliza.

Usage

La sintaxis básica del comando exec es la siguiente:

exec [opciones] [comando] [argumentos]

Common Options

  • -a nombre: Permite especificar un nombre diferente para el comando que se está ejecutando.
  • -l: Inicia el nuevo comando como un “login shell”, lo que significa que se ejecutan los scripts de inicio de la shell.
  • -c: Permite ejecutar un comando en un contexto diferente, aunque esta opción no es comúnmente utilizada.

Common Examples

  1. Reemplazar la shell actual con un nuevo comando:
    exec /bin/bash
    

    Este comando reemplaza la shell actual con una nueva instancia de Bash.

  2. Ejecutar un script y reemplazar la shell:
    exec ./mi_script.sh
    

    Aquí, el script mi_script.sh se ejecuta y reemplaza la shell actual.

  3. Ejecutar un comando con un nombre diferente:
    exec -a nuevo_nombre /bin/ls
    

    Este comando ejecuta ls pero con el nombre de proceso nuevo_nombre.

  4. Iniciar un nuevo shell como login shell:
    exec -l /bin/bash
    

    Esto inicia una nueva instancia de Bash como un login shell, cargando los scripts de inicio correspondientes.

Tips

  • Utiliza exec cuando necesites que un script o comando reemplace la shell actual, especialmente en scripts de inicio.
  • Ten cuidado al usar exec, ya que no podrás volver a la shell original después de que el comando se ejecute.
  • Si deseas ejecutar un comando y luego regresar a la shell, considera usar simplemente el comando sin exec.