GNU/Linux >> Linux の 問題 >  >> Linux

「jobs:NotFound」というエラーメッセージが表示されるのはいつですか。

jobsはいつ行われますか コマンドはメッセージjobs:not foundを発行します ?
また、コマンド man jobs はなぜですか? コマンドjobsのエントリを表示することを拒否します ?
P.S. : jobsを正常に実行できます 端末のコマンド

承認された回答:

ジョブ は実際のコマンドではありませんが、使用しているシェルに組み込まれているコマンドです:

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

シェルなしで実行しようとすると、 jobs というバイナリ実行可能ファイルがないため、エラーメッセージが表示されます。 。

また、組み込みであるため、マンページもありません。 man builtinsを見てください マルコが言ったように、 man bash または、 bash を使用していない場合は、使用しているそれぞれのシェルのマンページにあります 。

編集:シェルなしでプログラムを実行することの意味を説明する:Linuxのプロセスが別のプロセス(forkとexec)を起動したい場合、このプロセスをシェルでラップするか、シェルなしで直接起動することができます。たとえば、 perl システムを使用できます 新しいプロセスを起動する関数。これは、 echoのような実際のプログラムファイルで正常に機能します (警告をロードしました ここにもモジュールがあるので、エラーメッセージが表示されます):

[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

ただし、これは jobsのような組み込みのシェルでは機能しません 、バイナリファイル jobsがないため :

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

もちろん、すでにインタラクティブシェル内で作業している場合は、おそらくこの問題に遭遇することはありません。ただし、これは他のいくつかの状況、たとえばGnome Altを使用している場合に関係します。 + F2 ダイアログを実行します。コマンドをシェルでラップしないため、 jobs を実行しようとしている間、実際のバイナリは正常に機能します エラーメッセージが表示されるだけです。

元のエラーメッセージからjobs:not found シェルのjobsの中にいるので、あなたはどういうわけかシェルの中にいないと思っていました もちろん正常に動作するはずです。


Linux
  1. 登録されたコールバックが提供されたURLと一致しません–WSO2エラーを修正します

  2. 組み込みコマンドとそうでないコマンドの違いは?

  3. シェルでファイルを実行するとどうなりますか?

  1. Bashの正規表現が変数であり、直接ではない場合にのみ機能するのはなぜですか?

  2. + aを設定しても-aフラグの設定が解除されませんか?

  3. シェルでプログラムの実行時間を取得する

  1. 正規表現を使用すると、シェルの「tar:アーカイブに見つかりません」エラーが発生する

  2. monit をインストールした後、monit status myproc を実行すると、monit デーモンへの接続でエラーが発生します

  3. apt-get の更新後に KEYEXPIRED エラー メッセージが表示された場合はどうすればよいですか?