( locsemege | 2017. 05. 14., v - 13:35 )

off

Vicces. Egy példát akartam írni, mire aztán rájöttem, nem is lenne igazán jó példa, mert a hardcoded ostobaságra valóban nincs ellenszer. (Lehet, zavarosan fogalmaztam. Te írtad helyesen, az a programozó az ostoba, aki effélét elkövet.) Viszont, miközben a példához gyűjtöttem a konkrét infót, észrevettem, hogy nem megy a profile-sync-daemon. A program maradt a régi, de a bash újabb, s elhasalt ugyanazon a scripten. Kijavítottam, most működik, szerintem bugreportolni fogom. :)

Volt egy ilyen kifejezés:

${#DIRArr[@]##*/}

Picit túltolták. Az első # nélkül még értelmes, hiszen előállítja a tömbből az elemek utolsó / utáni részeit szóközzel szeparálva. Viszont, amikor ezt meg kell számolni, akkor felesleges az elemek leszabdalása, az elemek számosságát a ${#DIRArr[@]} kifejezés adja vissza. Az eredetit a régi bash megette, de az új már egy bad substitution üzenettel honorálja azt.

Valami olyasmi akart lenni a példám, hogy nekem a / (SSD) alá van mount-olva a /home (HDD) és a /var (HDD), a /home alatt van valahol a .mozilla, ami egy symlink a /var alá, de valójában az nem is a /var, mert oda bind mount-oltam az SSD-m egyik filerendszerének egy könyvtárát. S ha ez nem volna elég, alatta van a firefox profile, ami viszont egy újabb symlink valahova a /tmp-ben található könyvtárra, ami meg tmpfs, tehát RAM és swap. Viszont ezt a szörnyű ámokfutást a böngésző úgy éli meg, hogy valahol a $HOME-ban van neki egy profilja. :)

Mindezt azért csináltam így, mert azt szerettem volna, hogy a hatalmas böngésző profil másolása gyors legyen RAM-ba, tehát SSD-ről történjék, ne pedig HDD-ről, mert különben odavész a rövid boot time. A psd meg azért kell, hogy a böngésző gyors legyen, s ne generáljon adatforgalmat az SSD-re.

Amúgy van tovább is, mert a RAM disk valójában egy overlayfs az SSD fölött. Jó, hát elvoltam, na! :D

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE