GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuándo aparece el mensaje de error "trabajos:no encontrado"?

¿Cuándo comienza el jobs? el comando emite el mensaje jobs : not found ?
Además, ¿por qué el comando man jobs negarse a mostrar ninguna entrada para el comando jobs ?
P.D. :Puedo ejecutar con éxito los jobs comando en la terminal

Respuesta aceptada:

jobs no es un comando real, sino un comando integrado en el shell que está utilizando:

[email protected]:~$ type jobs
jobs is a shell builtin

Cuando intente ejecutarlo sin un shell, recibirá un mensaje de error porque no hay un ejecutable binario llamado jobs .

Tampoco tiene una página de manual porque es solo una función integrada. Busque en man builtins como dijo Marco, en man bash o en la página de manual del shell respectivo que está usando si no está usando bash .

EDITAR:para explicar lo que significa ejecutar un programa sin shell:cuando un proceso en Linux quiere iniciar otro proceso (fork y exec), puede envolver este proceso en un shell o iniciarlo directamente sin shell. Por ejemplo, en perl puedes usar el system función para iniciar un nuevo proceso. Esto funciona bien con archivos de programa reales como echo (He cargado las warnings módulo aquí también para que podamos ver los mensajes de error):

[email protected] ~ % ll /bin/echo 
-rwxr-xr-x 1 root root 31K Jan 17  2013 /bin/echo*
[email protected] ~ % perl -Mwarnings -e 'system "echo", "test"'
test

Pero esto no funciona con un shell integrado como jobs , porque no hay un archivo binario jobs :

[email protected] ~ % perl -Mwarnings -e 'system "jobs"'
Can't exec "jobs": No such file or directory at -e line 1.

Por supuesto, cuando ya está trabajando dentro de un caparazón interactivo, probablemente no se tropiece con este problema. Pero esto es relevante en algunas otras situaciones, por ejemplo, cuando está usando Gnome Alt +F2 ejecutar diálogo. No envuelve su comando en un shell y, por lo tanto, los binarios reales funcionan bien al intentar ejecutar jobs solo mostrará un mensaje de error.

De su mensaje de error original jobs : not found Supuse que de alguna manera no estás en un caparazón, porque dentro de un caparazón jobs por supuesto, debería funcionar bien.


Linux
  1. ¿La diferencia entre un comando incorporado y uno que no lo es?

  2. ¿Qué sucede exactamente cuando ejecuto un archivo en el Shell?

  3. ¿Cuál es la diferencia de obtener salida de comando usando `command` y $(command) en Shell?

  4. ¿Por qué nadie usa The True Bourne Shell como /bin/sh?

  5. Obtenga el tiempo de ejecución del programa en el shell

Solución:MySQL ERROR 1819 (HY000):su contraseña no cumple con los requisitos de la política actual

¿Por qué el archivo de traducción de Bash no contiene todos los textos de error?

¿Por qué Regex en Bash funciona solo si es una variable y no directamente?

¿Establecer +a no desarma la bandera -a?

Gnome Shell:¿Presionar la tecla Super no funciona?

Error de Shell 'tar:no encontrado en el archivo' al usar una expresión regular