GNU/Linux >> Linux Esercitazione >  >> Linux

Quando viene visualizzato il messaggio di errore "lavori:non trovati"?

Quando fa i jobs comando invia il messaggio jobs : not found ?
Inoltre, perché il comando man jobs rifiuta di mostrare qualsiasi voce per il comando jobs ?
P.S. :Sono in grado di eseguire con successo i jobs comando sul terminale

Risposta accettata:

jobs non è un comando reale, ma un comando integrato nella shell che stai utilizzando:

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

Quando provi a eseguirlo senza una shell, riceverai un messaggio di errore, perché non esiste un eseguibile binario chiamato jobs .

Inoltre non ha una pagina di manuale perché è solo un built-in. Cerca in man builtins come ha detto Marco, in man bash o nella pagina man della rispettiva shell che stai usando se non stai usando bash .

EDIT:per spiegare cosa significa eseguire un programma senza una shell:quando un processo in Linux vuole avviare un altro processo (fork ed exec), può avvolgere questo processo in una shell o avviarlo direttamente senza una shell. Ad esempio, in perl puoi usare il system funzione per avviare un nuovo processo. Funziona bene con file di programma reali come echo (Ho caricato gli warnings modulo anche qui in modo da poter vedere i messaggi di errore):

[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

Ma questo non funziona con una shell incorporata come jobs , perché non esiste un file binario jobs :

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

Ovviamente quando stai già lavorando all'interno di una shell interattiva, probabilmente non ti imbatterai in questo problema. Ma questo è rilevante in altre situazioni, ad esempio quando usi Gnome Alt +F2 finestra di dialogo di esecuzione. Non racchiude il tuo comando in una shell, e quindi i binari reali, funzionano bene, mentre si tenta di eseguire jobs mostrerà solo un messaggio di errore.

Dal tuo messaggio di errore originale jobs : not found Avevo pensato che in qualche modo non fossi in una shell, perché all'interno di una shell jobs dovrebbe ovviamente funzionare bene.


Linux
  1. Il file di metadati non corrisponde al checksum – Errore YUM!

  2. Strumento per ottenere le righe in un file che non sono in un altro?

  3. Perché il file di traduzione Bash non contiene tutti i testi di errore?

  4. Perché la Regex in Bash funziona solo se è una variabile e non direttamente??

  5. Imposta +a non disattiva il flag -a?

Correzione – MySQL ERROR 1819 (HY000):la tua password non soddisfa i requisiti della politica corrente

Gnome Shell:premere il tasto Super non funziona?

Come ottenere PYTHONPATH nella shell?

Shell 'tar:errore non trovato nell'archivio' quando si utilizza l'espressione regolare

Come correggere "comando non trovato" quando appare il terminale di avvio su Ubuntu

Cosa devo fare quando ricevo il messaggio di errore KEYEXPIRED dopo un aggiornamento apt-get?