Úloha z 2. zápočtového testu PS1
6b: V /usr najděte a vypište jméno podadresáře, (ignorujte skryté) který má nejvíce podadresářů (nerekurzivně). Při více shodných, stačí vypsat 1 kandidát. (Nevím zda jsem to přepsal správně.) Může mi někdo napsat správné, pokud možno úsporné řešení (aby se vlezlo do 4 testových řádků - čtverečky ) Nápověda výstup z příkazu ls -l /
.(tuším)
EDIT: cutit ls -l je prasárna, ale jako pseudo řešení asi bude postačovat, protože problém je skoro u každého řešení, skoro všech příkladů:
1)Uzávorkování:
echo "$var"
Je "good practice", které řeší většinu případů, ale zdaleka ne vše. TLDP - Quoting variables
2)Jména souborů: Fakt, že název souboru může obsahovat prakticky cokoliv, dokáže nepříjemně potrápit v mnoha situacích. Viz LinuxDays14 Lukáš Bařinka jména souborů.
3) Speciální znaky např: '!' Lukáš Bařinka !
....asi se najdou další oblasti...
Nicméně, zajímá mě tedy správné řešení problému :-). EDIT2: Dal jsem upvote všem co se snažili (krom sebe), až někdo přijde s neprůstřelným řešením, co je realizovatelné v testu dám to jako správnou odpověď. (V úterý se na to zeptám na cviku)
Ve čtvrtek po testech. Od toho byly konzultace, nyní je třeba zajistit stejné podmínky pro studenty, kteří budou psát ve čtvrtek, a studenty, kteří psali včera.
Josef Kokeš ( 2014-11-12 07:38:16 +0100 )editrozumím, rád si na něj počkám :-) Opravdu mě to zajímá.
shejby ( 2014-11-12 23:22:52 +0100 )editAd 3) Vykřičník (history expansion) funguje implicitně pouze v interaktivních shellech. Má tu někdo pocit, že test na papír je práce s interaktivním shellem!? S tím vykřičníkem bych se proto neukvapoval.
Defugio Auctoritatem ( 2014-11-13 15:27:20 +0100 )edit"!" jako history expansion, je jen jedna z mála možností jak lze v shellu použít, doporučuju tu přednášku (má i druhou část)
shejby ( 2014-11-13 15:58:15 +0100 )edit