Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Příkaz fg a znak %  (Přečteno 883 krát)

Tetsuya

  • Aktivní člen
  • *
  • Příspěvků: 131
Příkaz fg a znak %
« kdy: 26 Ledna 2012, 15:56:39 »
Dneska mi došla trpělivost s příkazem fg. Neskutečně mě vytáčelo, že musím vždycky uvádět před číslo jobu znak %, takže jsem to prostě zkusil bez toho, a co myslíte, že se stalo? Volaná úloha se prostě přepla do popředí, a jela dál. :D Můžete mi někdo vysvětlit, proč se tam ty procenta zadávají? Je to v každým návodu, ale žádný logický vysvětlení...

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:Příkaz fg a znak %
« Odpověď #1 kdy: 26 Ledna 2012, 16:11:19 »
ty procenta tam jsou proto, protoze muzes mit vic uloh bezicich na pozadi, tak abys jasne oznacil, kterou ulohu chces prepnout do popredi.
kdyz das jen fg, tak se ti imho prepne do popreti posledni uloha, kterou jsi spustil na pozadi
Tak dlouho se vrzá s Acerem, až se displej utrhne.

Tetsuya

  • Aktivní člen
  • *
  • Příspěvků: 131
Re:Příkaz fg a znak %
« Odpověď #2 kdy: 26 Ledna 2012, 17:07:31 »
ty procenta tam jsou proto, protoze muzes mit vic uloh bezicich na pozadi, tak abys jasne oznacil, kterou ulohu chces prepnout do popredi.
kdyz das jen fg, tak se ti imho prepne do popreti posledni uloha, kterou jsi spustil na pozadi

I když máš na pozadí těch úloh víc, tak pro přesunutí konkrétní úlohy do popředí stačí spustit jen fg číslo_úlohy. Funguje to prostě i bez těch procent. Proto se ptám, proč tam jsou...
« Poslední změna: 26 Ledna 2012, 17:09:32 od Tetsuya »

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re:Příkaz fg a znak %
« Odpověď #3 kdy: 26 Ledna 2012, 20:54:29 »
Zajímavý postřeh.

U bash příkazů, které mají jako argument pouze jobspec, asi není nutné uvádět znak '%', ale u těch, kde by mohlo označení jobu kolidovat s PID (wait, kill) to bude jinak. Srovnej
Kód: [Vybrat]
kill 1
kill %1

EDIT: nejméně u bg a fg ten znak potřeba není
Citace: bash/common.c/get_job_spec()
  if (*word == '%')
    word++;

  if (DIGIT (*word) && all_digits (word))
    {
      job = atoi (word);
      return (job > js.j_jobslots ? NO_JOB : job - 1);
    }
(tj. pokud je první znak argumentu '%', přeskoč ho (word++) a zbytek převeď na int (pokud zbytek číslo není, ale job je specifikován textem, pokračuje kód dále)).
« Poslední změna: 26 Ledna 2012, 21:42:47 od daysleeper »

Tetsuya

  • Aktivní člen
  • *
  • Příspěvků: 131
Re:Příkaz fg a znak %
« Odpověď #4 kdy: 30 Ledna 2012, 00:00:16 »
Supr, díky za vysvětlení. :) U toho killu to procento chápu, ale u fg je to dost nepraktický...

 

Provoz zaštiťuje spolek OpenAlt.