Mám cvičení, abych do souboru vložil některá data (* conf z některých adresářů) a musím to udělat na pozadí. Udělal jsem to a zajímalo by mě, jaký je význam výstupních zpráv:

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

Enter zvedne tento řádek:

[1] 2533 

Co to znamená? Po dalším zadání se objeví další zprávy

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

Co to znamená? Co je „Konec 2“?

Zadejte výsledky kontroly – zdá se, že je vše v pořádku.

[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]$ 

Používám CentOS 6.4, Emulátor terminálu Gnome.

Odpověď

Co to znamená? Co je „Konec 2“?

Je to stav ukončení ls. Viz man pro ls:

 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). 

Myslím, že důvodem je, že v /etc máte spoustu * conf souborů. a žádné soubory * conf v / usr. Ve skutečnosti by ls -ld /usr/*conf; měl stejný účinek.

Takže pokud na počítači udělám ls pro existující soubor:

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

A pro soubor, který neexistuje:

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

Nebo jako proces na pozadí pro soubor aa, který neexistuje:

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

Komentáře

  • O! Dík. Nyní jsem si ' uvědomil, že ls /usr/*conf vrací 2, protože neexistují žádné názvy souborů obsahující " conf ".
  • @ALZ, všimněte si, že vrací 2, protože nemůže najít soubor s názvem /usr/*conf. A bash jej předává jako název souboru, protože ' nemůže najít soubory, které odpovídají tomuto vzoru. Lepší skořápky jako zsh by vrátily chybu " bez shody " a nespustily by se ls vůbec.

Odpověď

Znamená to, že průměrný příkaz skončil se stavem ukončení jiným než 0 (úspěch).

Snažte se nedávat (&) na konec , abyste zjistili, co se stane.

Pokud tento příkaz při spuštění trvá hodně, můžete jej zkontrolovat pomocí:

lnx #> úlohy -l

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *