GNU/Linux >> Tutoriels Linux >  >> Linux

Quand reçoit-on le message d'erreur "jobs :Not Found" ?

Quand est-ce que les jobs commande émet le message jobs : not found ?
Aussi, pourquoi la commande man jobs refuser d'afficher toute entrée pour la commande jobs ?
P.S. :Je suis capable d'exécuter avec succès les jobs commande sur le terminal

Réponse acceptée :

jobs n'est pas une vraie commande, mais une commande intégrée au shell que vous utilisez :

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

Lorsque vous essayez de l'exécuter sans shell, vous obtenez un message d'erreur, car il n'y a pas d'exécutable binaire appelé jobs .

Il n'a pas non plus de page de manuel car il s'agit simplement d'une fonction intégrée. Regardez dans man builtins comme l'a dit Marco, dans man bash ou dans la page de manuel du shell respectif que vous utilisez si vous n'utilisez pas bash .

EDIT :pour expliquer ce que signifie exécuter un programme sans shell :lorsqu'un processus sous Linux veut lancer un autre processus (fork et exec), il peut soit envelopper ce processus dans un shell, soit le lancer directement sans shell. Par exemple, en perl vous pouvez utiliser le system fonction pour lancer un nouveau processus. Cela fonctionne bien avec de vrais fichiers de programme comme echo (J'ai chargé les warnings module ici aussi pour que nous puissions voir les messages d'erreur):

[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

Mais cela ne fonctionne pas avec un shell intégré comme jobs , car il n'y a pas de fichier binaire jobs :

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

Bien sûr, lorsque vous travaillez déjà dans un shell interactif, vous ne tomberez probablement pas sur ce problème. Mais cela est pertinent dans d'autres situations, par exemple lorsque vous utilisez Gnome Alt +F2 dialogue d'exécution. Il n'enveloppe pas votre commande dans un shell, et donc les vrais binaires fonctionnent bien, tout en essayant d'exécuter des jobs affichera simplement un message d'erreur.

D'après votre message d'erreur d'origine jobs : not found J'avais supposé que vous n'étiez pas dans un shell, car à l'intérieur d'un shell jobs devrait bien sûr fonctionner correctement.


Linux
  1. La différence entre une commande intégrée et une qui ne l'est pas ?

  2. Pourquoi le fichier de traduction Bash ne contient-il pas tous les textes d'erreur ?

  3. Pourquoi personne n'utilise le True Bourne Shell comme /bin/sh ?

  4. Obtenir le temps d'exécution du programme dans le shell

  5. Erreur Shell 'tar :introuvable dans l'archive' lors de l'utilisation d'une expression régulière

Correctif – ERREUR MySQL 1819 (HY000) :votre mot de passe ne satisfait pas aux exigences de la politique actuelle

Définir +a n'annule pas l'indicateur -a ?

Gnome Shell :appuyer sur la super touche ne fonctionne pas ?

Comment obtenir le PYTHONPATH en shell?

Comment réparer la « commande introuvable » lorsqu'elle apparaît au démarrage du terminal sur Ubuntu

après avoir installé monit quand je fais monit status myproc j'obtiens une erreur de connexion au démon monit