Comando integrado de Bash Exec

En Tipo Unix sistemas operativos, ejecutivo es un comando incorporado del Intento cáscara. Le permite ejecutar un comando que reemplaza completamente el proceso actual. El proceso de shell actual se destruye y se reemplaza por completo por el comando que especifique.
- Descripción
- Sintaxis
- Ejemplos de
- Comandos relacionados
- Ayuda incorporada de Bash
- Ayuda de comandos de Linux
Descripción
ejecutivo es una función crítica de cualquier Unix -como sistema operativo . Tradicionalmente, la única forma de crear un nuevo proceso en Unix es tenedor eso. La tenedor La llamada al sistema hace una copia del programa de bifurcación. La copia luego usa ejecutivo a ejecutar el proceso hijo en su espacio de memoria.
Sintaxis
|_+_|Opciones y argumentos
La ejecutivo El comando incorporado toma las siguientes opciones y argumentos:
-a nombre | Pasa la cuerda nombre como el argumento cero para mando . Esta opción está disponible en las versiones 4.2 y superiores de bash. Cuando se usa, se ejecutará mando , y configure el caparazón especial variable $0 al valor nombre , en vez de mando . Para más información, ver parámetro especial bash 0 . |
-c | Ejecutar mando en un ambiente vacío. |
-l | Inserte un guión al principio del argumento cero. Esto puede iniciar un shell de inicio de sesión a través de ejecutivo . Para obtener más información sobre los shells de inicio de sesión y los requisitos de bash sobre cómo se pueden invocar, consulte invocación de shell en bash . |
mando | El comando que se ejecutará. Si no especifica un comando, ejecutivo todavía puede proporcionar redirección. |
argumentos | Los argumentos del comando que le gustaría ejecutar. |
redirección | Cualquier redirección para el comando. Si no mando se especifica, la redirección se aplica al shell actual. |
Descripción
ejecutivo es útil cuando desea ejecutar un comando, pero no desea que un shell bash sea el proceso principal. Cuando usted ejecutivo un comando, reemplaza a bash por completo: no se bifurca ningún proceso nuevo, no hay nuevos PID se crea, y todo memoria controlado por bash se destruye y se sobrescribe. Esto puede resultar útil si, por ejemplo, desea otorgar a un usuario acceso restringido a un comando determinado. Si el comando sale debido a un error , el usuario no vuelve a la privilegiado shell que lo ejecutó.
ejecutivo también se puede usar sin ningún comando, para redirigir toda la salida del shell actual a un archivo. Para obtener más información sobre la redirección, consulte redirección en el shell bash .
Ejemplos de
|_+_|Reemplazar el shell bash actual con rbash , el shell de inicio de sesión restringido de bash. Debido a que el shell bash original se destruye, el usuario no vuelve a un shell bash privilegiado cuando rbash salidas.
|_+_|Redirigir toda la salida al archivo output.txt para el proceso de shell actual. Las redirecciones son un caso especial y ejecutivo no destruye el proceso de shell actual, pero intento ya no imprimirá la salida en la pantalla, sino que la escribirá en el archivo. (Esta técnica es mucho más útil en scripts: si el comando anterior se ejecuta en un script, toda la salida del script se escribirá en output.txt .)
|_+_|Abierto myinfile.txt para leer (' < ') en el descriptor de archivo 3 .
El comando anterior es un ejemplo de cómo abrir explícitamente un descriptor de archivo . Ver abriendo descriptores de archivos en bash para más información.
Después de ejecutar el comando anterior, puede leer una línea de myinfile.txt ejecutando el leer comando con el -u opción:
|_+_|Aquí, ' -en 3 'dice leer para obtener sus datos del descriptor de archivo 3, que se refiere a myinfile.txt . Los contenidos se leen, una línea a la vez, en la variable mis datos . Esto sería útil si se utiliza como parte de un tiempo bucle, por ejemplo.
Veamos algunos comandos más que abren y cierran nuevos descriptores de archivos.
|_+_|Se abre el comando anterior out.txt para la escritura (' > ') en el descriptor de archivo 4 .
|_+_|Cerca (' &- ') el descriptor de lectura abierto (' < ') número 3 .
|_+_|Cierre el descriptor de escritura abierto (' > ') número 4 .
|_+_|Abierto myfile.txt para leer y escribir (' ') como descriptor de archivo 5 .
|_+_|Cierre el descriptor de lectura / escritura abierto 5.
|_+_|Abierto myappendfile.txt por añadiendo (' >> ') como descriptor de archivo 6 .
|_+_|Abierto out.txt para la escritura. Se asigna a la variable un nuevo número de descriptor de archivo, elegido automáticamente estoy .
|_+_|Haz eco del texto ' Texto 'y redirigir la salida al archivo (en este caso, out.txt ) descrito por el descriptor de escritura (' > ') cuyo número se obtiene por desreferenciar (' & ') el valor de la variable (' $ ') llamado estoy .
Comandos relacionados
leer - Leer una línea de entrada y dividirla en palabras.