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