Siis ilmeisesti trap:peja voi yhtäaikaisesti olla monta ?
Eri signaaleille kuten tuossa testissä yllä, kokeile pyörittää tuota testiä. Tuolla tavalla käynnissäolevaa skriptiä voi "kauko-ohjata" signaaleilla tekemään erilaisa asioita, esimerkiksi noihin USR1 ja USR2 signaaleihin voisi liittää jotain toimintoja eli tuonne "echo jotain; exit" tilalle voi laittaa jonkun oman funktion nimen ja kirjoitella haluamansa toiminnon siihen.
Itse käytän hyvin yksinkertaisia keinoja kun jokin ei toimi kuten kuvittelin:
1) Tulostaa muuttujan arvon epäilyttävistä kohdista "echo $muuttujan_nimi".
2) Pelkkä "read" johonkin kohtaan jolloin pelin voi pysäyttää tuohon kohtaan ja jatkaa painamalla "Enter".
3) "exit" kohtaan josta haluaa poikki ja tilanteen tarkastus.
Usein vika on että muuttujasta löytyikin jotain odottamatonta kuten:
- Välilyönti (tai useampi) rivin alussa tai lopussa --> rivin alun tai lopun testaus ei toimi
- <CR> rivin lopussa, ---> rivin lopun testaus ei toimi
Lisäksi tavanomaista:
- Pehmeä lainaus "jotain juttua tässä " unohtunut jolloin vain ensimmäinen sana (eli "jotain" ) menee perille.
- Sijoituslauseessa ei saa olla tyhjää "=" -merkin kahden puolen, testilauseessa pitää olla.
- "$" unohtunut kun muuttujaa käytetään...
- Jotkut merkit pitää "eskeipata" eli laittaa "\" (backslash, kenoviiva) eteen ettei niitä kyseisessä paikassa luulla kentän erottimiksi.
- Täytyy muistaa laittaa "-E" -vipu "grep": lle jos kirjoittelee RE/ERE -lauseita, laittaa tuplahakasiin Posix merkkiluokat [[:alnum:]] jne kuten esimerkiksi täällä on kerrottu:
http://www.zytrax.com/tech/web/regex.htmSääntöjä ja poikkeuksia on aika paljon mutta ne oppii parhaiten virheiden ja "ahaa !" -elämysten kautta. Omalla tavallaan hauskaa puuhaa vaikka nuo "risuaidat" voivat näyttää aika hurjilta hieman monimutkaisemmassa "Regular Expression" (vakioitu ilmaus ?) tapauksissa.
"grep": llä on aika mukava kokeilla erilaisia RE-lauseita kun antaa vivut "-oE" jolloin se päästää läpi vain "osuman saaneet".