WWW-diary of Juhapekka Tolvanen:

Saturday, 05 April 2003




04:40:09 EEST @111

Luin jo melkein loppuun saakka sen Nobel-runoilijoiden kokoelman. Mutta menempä nukq.



16:28:26 EEST @602

Heräsin siinä iltakahden jälkeen. verso-koneessa on nyt näköjään Red Hat 9, muttei vielä Zsh:ta, joten mun on pakko käyttää siellä Bash:ia. No, Kallio kyllä sai siitä kuulla automaagisesti.

Rupesin tutkimaan tarkemmin, miten bash latailee mun shelliasetustiedostoja. Jotenkin tuntuu, että bash on siinä suhteessa kuin mikäkin tuittupää. En saa sitä millään toimimaan niinkuin haluan.

Debuggaustarkoituksia varten mullon noissa konffaustiedostoissa alussa echo-komentoja, jotka sanovat sen juuri ladattavana olevan tiedoston nimen. Normaalisti pidän ne tietenkin poiskommentoituna. Nyt mulla verso:on logatessa asetustiedostojen lataantumisesta tulee ilmoituksia näin:

~/.bash_profile
~/.profile

Toi mun ~/.bash_profile siis includaa ton ~/.profile:n. Muuten kiva, mutta nyt se ei, vittu, lataa mun .shinit-tiedostoa, jossa on mm. iso kasa hyödyllisiä funktioita ja aliaksia, joita voisi käyttää millä tahansa Bourne-sukuisella shellillä. ~/.bashrc includaa sen, mutta login-shellipä ei lataa .bashrc:tä. Samojen tiedostojen uudelleenlatauamisen välttämiseksi tiedoston ~/.shinit alussa on tällaista:

HOME_SHINIT="1"
export HOME_SHINIT

Vastaavat ympäristömuuttujat on muissakin asetustiedostoissa. No, poistetaanpa vaikkapa tiedostosta ~/.bash_profile kommenttimerkit tällaisesta:

if [ -n "$HOME_SHINIT" ]
then
 if [ "$HOME_SHINIT" -gt 0 ]
 then
  :
  echo PAH ~/.shinit
 fi
else
  echo SUCK ~/.shinit
  . "${HOME}/.shinit"
  HOME_SHINIT="1"
  export HOME_SHINIT
fi

Ja kuinkas sitten käy, kun loggaan sisään verso:oon:

~/.bash_profile
~/.profile

SUCK /st/94/kaksoset/juhtolv/.shinit
~/.shinit

~/.bashrc
~/.shinit

Mitäääääähhh!!!111!!! Nyt se lataa kyllä ~/.shinit-fileen, mutta kohta se lataakin .bashrc:n ja sitten lataantuu ~/.shinit toiseen kertaan.

Tässä oli vasta pieni esimerkki kaikesta siitä nysväyksestä, mitä minulle aiheutuu siitä, kun bash on niin vittumainen noitten asetustiedostojensa kanssa. Vaikka zsh:ssa asetustiedostoja onkin peräti kymmenkunta, niin vähänkään tarkemmin katsoessa käy ilmi, että niitä on helpompi säätää: Komennot, jotka ajetaan joka vitun kerta, kun zsh käynnistyy, voi kirjoittaa tiedostoon ~/.zshenv (tai vastaavaan systeeminlaajuisesti vaikuttavaan tiedostoon /etc/zshenv). Komennot, jotka zsh ajaa ihan vitun kerta ollessaan interaktiivinen, voi kirjoittaa tiedostoon ~/.zshrc (tai vastaavaan systeeminlaajuisesti vaikuttavaan tiedostoon /etc/zshrc) ja sillä ei ole silloin mitään hevon vitun väliä, onko se kyseinen interaktiivisena pyörivä zsh myös login-shelli vai ei. Niin simppeliä se on. Jos syystä tai toisesta haluaa jotain komentoja ajettavaksi vain ja ainoastaan login-shelleille, niin sitä varten zsh:ssa toki on omat tiedostonsa.

Mutta joo... jatkanpa nysväystä...



20:05:20 EEST @753

No niin... En enää jaksanut nysvätä sen kanssa, kun bash latailee sitä filettä ~/.shinit joko kaksi kertaa tai ei lainkaan. Sen sijaan tein shelliskriptin, joka tutkii type-komennon avulla, että onko joku ohjelma ollenkaan olemassa jossain "polun varrella" ja jos ei ole, niin sitten se lähettää niistä ylläpidolle valitusmeilin. Tarpeeksi kauan testailtuani sitä ajoin sen jo yhden kerran verso-koneella, jossa on varmasti jonkin aikaa softapuutoksia, koska siihen on vasta asennettu se Red Hat 9. Tämännäköinen meili siitä lähti:


Argh! It seems computer called verso.st.jyu.fi lacks some software
I just can not live without:

gvim
lynx
mc

Please, rectify this awful situation ASAP.

(This E-mail was automatically generated by programcomplaints.sh)

MOTD:n mukaan myös silmuun ja ituun tulee Red Hat 9 lähiaikoina.



Edellinen / Previous

Seuraava / Next

Juhapekka Tolvanen