No szóval próbálok visszazökkenni a héjprogramozásba.
Írtam egy egyszerű gyakorló scriptet ami kiírja a kapott paramétereket. Viszont tudom hogy néhány karakternek speciális jelentősége van pl: * vagy {1,2}{3,4} és így meg lehet vizsgálni milyen paramétereket is kap a scriptem a héjtól. A ()-lel vagyok bajban, tudom hogy az is valami speciális dolog, de mi is ? Ugyanis ha ezt használom hibaüzenetet kapok:
Igazából az a baj, hogy abból, hogy a LC_CTYPE-ban UTF-8 van, egyáltalán nem következik, hogy a változó tartalma valid utf-8 — igazából bármi lehet, tehát flexibilisebbek vagyunk, ha azt mondjuk a 'cut'-nak: 'nesze, itt egy bájtsorozat, vágd le az első bájtot', mintha azt mondanánk: 'nesze, itt egy karaktersorozat, vágd le az első karaktert', ugyanis ezzel alkalmat adunk neki arra, hogy esetleg visszabeszéljen, hogy 'ez nem is érvényes karaktersorozat!'
Ez igaz. Inkább a szemléletmód, vagy ha úgy tetszik, a dolog szépsége és általánossága miatt mondtam. Érvelhetnék azzal, hogy az az 'x' lehetne akár 'ű' is, amelyre mondhatnád, hogy ki az az ostoba, aki oda 'ű'-t ír.
NevemTeve: Az echo-nál azt észrevettem hogy az echo --help nem helpet ad hanem kiírja hogy --help, holott a man szerint a parancsról adna infókat úgy mint ahogy az ls --help teszi. A /bin/echo működik úgy ahogy a man írja.
De rég írtunk ide :) Ismét elővettem a bash-t, sajnos már sokat felejtettem. El is akadtam rögtön az elején. A feladat csak az hogy van egy változóm amiben tetszőleges ismeretlen tartalom van. Ezt kell kiiratni echo-val. Ha a "-n" stringet rakom a változóba, már rögtön bajban is vagyok mert az echo-nap van egy -n kapcsolója és azt hiszi azt adom meg. Hogy lehet megmondani hogy ez most nem egy kapcsoló ?
A ${valtozo%string} a változó tartalmának végéről levágja string-et, ha string illeszkedik a változó végére. A * pedig mindenre illeszkedő globbing. A %% ugyanez, csak a legbővebb részhalmazra, tehát ameddig csak lehet, előremegy az illeszkedésben. A # az elején csinálja ugyanezt, a ## pedig a legnagyobb részhalmazra elöl illeszkedik, azaz a lehető legjobban a vége felé merészkedve próbál illeszkedést találni.
És a 300-as hozzászólásom? Mert az a megoldás az egykori kérdésedre. Persze, ahogy NevemTeve is mondta, Linuxon nem szokás a futtatható állomány mellé rakni az adatokat, konfigurációt. Bár, ha jól tudom, talán a Gobolinux ilyen.
Igen, de ha jobban végiggondolod, ezeket a fordításokat igen nagy munka megcsinálni, gondolom, Te sem vállalod, különösen úgy, hogy pénzt sem kapsz érte. Szóval marad az angol.
Arról nem is beszélve hogy amikor a sed doksiban felfedeztem a hibát, írtam arra a 2 magyar címre ahol jelezni kell a hibákat. Az egyik cím nemlétező volt, a másik címről válasz nem jött, tehát lehet hogy el sem jutott senkihez.
Igen én is most jöttem rá hogy a magyar nyelvű man oldalak úgy szarok ahogy vannak, teljesen félrevezetik az embert. Mert ugye vagy fordítsunk és mindig frissítsük ha az angol változik, vagy le se fordítsuk. Nem szeretem ezeket a félmegoldásokat.
Szóval leszedtem a csomagkezelővel a manpages-hu csomagot, és láss csodát, tök jó lett a sed-nek is a doksija, és a readlink-nek is. Azt hiszem a readlink doksija 1998-as volt !
Viszont a readlink dokumentációjával van megint bajom. (A múltkor a sed doksijával is bajom volt, olyan opciót írt le amit a sed nem is ismer !). Szóval a man readlink még véletlenül sem említi meg hogy létezik -f opció. De ha a neten keresek rá a readlink-re az már megemlíti a -f opciót. Nekem kicsit zavaros. Íme idemásolom nektek a man readlink kimenetét:
READLINK(1)
NÉV readlink - szimbolikus link tartalmának kiírása
ÁTTEKINTÉS readlink fájl
LEÍRÁS Ha a fájl egy szimbolikus link, kiírja a tartalmát (azt, hogy mire mutat), és sikeres visszatérési értékkel kilép; minden más esetben sikertelen visszatérési értékkel lép ki.
Az olyan rendszereken, amik nem támogatják a szimbolikus linkek használatát, a readlink mindig sikertelen vis- szatérési értékkel lép ki.
OPCIÓK A readlink a következő opciókat fogadja el:
--help Kiírja a használatára vonatkozó információkat és kilép.
Én is átgondoltam a dolgot. Inkább az lesz hogy a script paraméterként meg fogja kapni az olvasandó fájlt. Így nincs a scriptbe bedrótozva a neve, és többféle fájl-lal is együtt tud működni.
Bár ezt most nem gondoltam végig, hogy minden esetre jó-e, de talán igen, hiszen az aktuális $PWD-ből és $0-ból megvan, mégha symlink-en keresztül lett hívva is.