![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| loop probléma | kifutónak | Shell programozás és Scripting | 2 | 09-23-2008 11:15 AM |
| A loop probléma | mdap | Shell programozás és Scripting | 3 | 08-16-2008 02:27 PM |
| Probléma esetén Loop | A megfigyelő | Shell programozás és Scripting | 2 | 05-28-2008 03:43 AM |
| Probléma a while ciklus és az SQL | nandajk | A UNIX a dummies Kérdések és válaszok | 20 | 05-04-2007 07:19 AM |
| probléma, míg a hurok | mridula | Magas szintű Programozás | 1 | 12-11-2005 11:44 AM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
Kettős hurok közben probléma
Hi all, van ütközött egy furcsa probléma, míg a kettős hurok. A cél a két while ciklushoz képest Összevetéshez 2 kép, tmplist.txt a referencia fájl a teljes listát a szerverekről. Lásd a mellékelt képen a logikai és kapcsolat input és output.
A 2, míg hurkokon kell keresni a szerverek / test.csv a / tmplist.txt, soronként. Például, keresés első tétel / test.csv server2 a / tmplist.txt kezdve, első sorban a / tmplist.txt (LINENUM \u003d 1), ha nem található, akkor a kimenet "NA", és aztán a következő sort a / tmplist.txt amíg meg nem találja az egyeztetés server2, és frissíti LINENUM egy időben. Különben is folytathatja a keresés a következő szervert KISZOLGÁLÓ3 a / az tmplist.txt vonali -től (mivel az összes kiszolgáló mindig felsorolt alphabatic sorrendben). A változó LINENUM (mutató a sor-szám) használják, míg a belső hurok. Ez az előre-1 után, ha a feltétel if [$ SERVER \u003d $ refs] Igaz, a növekmény LINENUM majd kitörni, míg a belső hurkot, és továbbra is a külső, míg hurok. Ugyanakkor, miközben a külső loop, minden alkalommal, amikor hurkok és helyébe SERVER COUNT, a LINENUM elindul a kiindulási érték 1 helyett ismét a nő LINENUM származik, míg a belső hurok. Az alábbiakban azt mutatja, része a programnak a részleteit, miközben 2 hurkokon. Could anyone help megmagyarázni nekem, hogy mi a baj itt? Ez az első UNIX-hozzárendelés lesz igazán méltányol segítséged! #! / bin / bash Type \u003d P2PS LINENUM \u003d 1 miközben olvasni SERVER COUNT; do cat tmplist.txt | miközben olvasni LINE; do Refs \u003d $ (head - $ LINENUM tmplist.txt | tail -1) if [$ SERVER \u003d $ refs], majd let LINENUM + + echo-n "," $ COUNT>> t.csv törés vagy let LINENUM + + echo-n ", NA">> t.csv tovább fi kész done <test.csv |
|
||||
|
Nincs szükség 2 hurkokon, akkor használja erős unix parancsok szkriptjeidben, mint grep. Ez munka:
Természetesen t.csv előtt ki kell üríteni a végrehajtó a forgatókönyvet. miközben olvasni LINE tesz aux \u003d $ (grep $ line test.csv) if [[! -Z $ aux]] majd echo "$ aux">> t.csv vagy echo "NA">> t.csv fi done <tmplist.txt |
|
||||
|
Az olvasott belső hurok a subprocess. Minden változó értékeket vagy megváltozott belül a belső hurok nem ismert kívül is. Ha a fájlokat a kis megpróbálják cseréje közben-konstrukció ellen for-loop. Ha nem, tárolására meta-adatokat a belső hurok a fájlokat, hogy azokat kívülről. De ez nem csökkenti a sebességet szépen.
De valójában nem látja szükségét a kettős hurkok. Miért nem grep minden vonal tmplist.txt az első kép? |
![]() |
| Könyvjelzõk |
| Címkék |
| unix commands |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|