ファイルにいくつかのデータ(いくつかのディレクトリからの* conf)を入れる演習があり、これをバックグラウンドで行う必要があります。私はそれをしました、そして私は出力メッセージの意味が何であるか疑問に思います:

[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 & 

この行を入力してください:

[1] 2533 

それはどういう意味ですか?他のEnterの後に、別のメッセージが表示されます

[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 

それはどういう意味ですか? 「Exit2」とは何ですか?

チェック結果を入力してください-すべて問題ないようです。

[A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$ 

CentOS6.4を使用しています。 Gnomeターミナルエミュレータ。

回答

それはどういう意味ですか? 「終了2」とは何ですか?

lsの終了ステータスです。 lsについてはmanを参照してください:

 Exit status: 0 if OK, 1 if minor problems (e.g., cannot access subdirectory), 2 if serious trouble (e.g., cannot access command-line argument). 

その理由は、/etcに* confファイルがたくさんあるためだと思います。 / usrに* confファイルはありません。実際、ls -ld /usr/*conf;でも同じ効果があります。

したがって、既存のコンピューターでlsを実行する場合ファイル:

ls main.cpp; echo $? main.cpp 0 

存在しないファイルの場合:

ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2 

または存在しないファイルのバックグラウンドプロセスとして:

>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp 

コメント

  • O!ありがとう。 'は、ivを含むファイル名がないため、ls /usr/*conf2を返すことに気付きました。 id = “eb9ec21234″>

conf "。

  • @ALZ、/usr/*conf。また、 bash は、そのパターンに一致するファイルを'見つけることができないため、そのファイル名を渡します。 zshのような優れたシェルは、"一致しない"エラーを返し、実行されませんでしたlsまったく。
  • 回答

    つまりコマンドが終了しました終了ステータスが0(成功)とは異なります。

    最後に(&)を付けないようにしてください、何が起こるかを確認します。

    そのコマンドの実行時に時間がかかる場合は、次のコマンドで確認できます:

    lnx#>ジョブ-l

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です