• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    DELVITLinux pro zacatecniky a obycejne uzivatele (NO FLAMES!)
    Každý kdo chce poradit ohledně linuxu je na spravném místě. Přímý následovník audítka stejného názvu. Pravidla jsou stejná jako predchozí, hlavně žádné FLAME!
    Na Hompage klubiku najdete alternativy k aplikacim. Snazim se drzet ten list v aktualizovane a hlavne zajimave alternativy, kdyby ste chteli neco pridat do listu dejte vedet.

    Jak se správně ptát:

    1) Popište příznaky problému nebo chyby co možná nejjasněji a nejpečlivěji.
    2) Popište prostředí, ve kterém chyba nastává, tj. architekturu, operační systém, aplikaci, verzi, atd. Jmenujte distribuci a verzi systému (např. Red Hat 8.0, Slackware 5.1, atd.).
    3) Popište, jak jste se k chybě dostali, a jak jste se ji pokusili odhalit, isolovat a pochopit ještě předtím, než jste se zeptali.
    4) Popište relevantní změny v konfiguraci, které jste v poslední době provedli.
    5) Pokuste se už předem zodpovědět případné doplňující otázky.
    6) Na dlouhé výpisy použijte služby na to určené - pastebin - http://pastebin.com/
    rozbalit záhlaví
    PATRICIUS
    PATRICIUS --- ---
    RAGNAROK: "hdparm -y /dev/sda" by na to nezabral?
    RAINBOF
    RAINBOF --- ---
    RAGNAROK: v obecny rovine jde o to ze jsi ho dal vypnout takze zmizelo i /dev/sda zarizeni. Nicmene pokud je ho videt pres lsub. co zkusit restartovat usb port ?

    `/sys/bus/usb/devices/usb1/power/level`
    hodnoty tusim 0-100 a auto, on, off
    RAGNAROK
    RAGNAROK --- ---
    Takova dlouhodoba bolistka. Potrebuju spin down usb disku (aby se prestal tocit).

    Pokud pouziju:
    udisksctl power-off --block-device /dev/sda tak se disk vypne.

    Problem je ze pak nejde zase zapnot:
    lsusb ani lsblk ho nevidi.
    udevadm trigger nepomuze.

    Obcas pomuze smudlani s usb kabelem nebo az pak restart.
    GIOMIKY
    GIOMIKY --- ---
    Tohle je celkem hezké nastavení xtermu:
    příkaz: cat telecons
    #!/bin/bash
    /usr/bin/uxterm \
    -fa terminus \
    -fs 10 \
    -fg darkGray \
    -bg black \
    -geometry 41x25+150+0 \
    -xrm 'xterm*iconHint: /tmp/xterm' \
    -T " " \
    +samename \
    -xrm "xterm*allowTitleOps: false" \
    -xrm "xterm*selectToClipboard: true"
    GILHAD
    GILHAD --- ---
    RAINBOF:
    Tak jsem si udělal takové jakoby pokusné prostředí s mocným programem spellcosi a ukázkovým použitím, jak by to asi mohlo fungovat
    [gilhad@cobra-mk3(10) F] $ for i in *; do echo "============ $i =============";cat $i;done;echo "==========================="
    ============ prog.sh =============
    #!/usr/bin/env bash
    
    declare divnopromena
    
    function neco
    {
    printf 'nejaka divna promena %s' "${divnopromena}
    }
    ============ prog1.sh =============
    #!/usr/bin/env bash
    
    function neco
    {
    printf 'nejaka divna promena %s' "${divnopromena}
    }
    ============ prog2.sh =============
    #!/usr/bin/env bash
    
    function neco
    {
    printf 'nejaka divna promena %s' "${divnopromena}
    }
    ============ promenne.txt =============
    declare divnopromena
    declare divnopromena1
    declare divnopromena2
    declare divnopromena3
    ============ spellcosi =============
    cat
    ===========================
    [gilhad@cobra-mk3(10) F] $ for i in *.sh; do cat promenne.txt $i | ./spellcosi | grep -v -f promenne.txt >$i.txt; done
    [gilhad@cobra-mk3(10) F] $ for i in *.sh; do diff -u0 $i $i.txt; done
    --- prog.sh	2023-03-31 15:28:39.018065477 +0200
    +++ prog.sh.txt	2023-03-31 15:38:48.654308914 +0200
    @@ -3 +2,0 @@
    -declare divnopromena
    [gilhad@cobra-mk3(10) F] $ 
    RAINBOF
    RAINBOF --- ---
    GILHAD: to jsme zas u toho ze define je az u bashe 5.

    Zatim jsem vyignoroval SC2154 a v tejdnu to zkusim zhmotnit tim ze budu shellcheckovat nejakym dockerem kde ten ~/.shellcheckrc bude brat nejakej file s promenyma.
    GILHAD
    GILHAD --- ---
    RAINBOF: aha, tak místo
    divnopromena1=1
    dát
    declare divnopromena1
    a případně na začátek ještě ten
    #!/usr/bin/env bash

    Mě šlo o ten princip - nasypat takhle kaádému skriptu všechny ty proměnné, pak to ospellchekovat a pokud to nalezne chyby, tak řešit, jinak ne. (Já teda spellcheck nepoužívám, ani nemám nainstalovaný a bral jsem ho taky jako náhradní jméno ve smyslu těch divnopromenych)
    RAINBOF
    RAINBOF --- ---
    KARIBIKCZ: na ten .shellrc jsem dosel vcera. zatim to vede k tomu ze to budu provozovat pres docker kam si exportnu ty promenne pre external source a pak to spustim pres to. Jen mi to prijde ujety tim testovat i lokalne. V pipeline je me to fuk.
    KARIBIKCZ
    KARIBIKCZ --- ---
    RAINBOF: ok pardon, limitovane moznosti, to jsem nekde prehledl kontext; tak by oprava mohla vypadat treba jako
    [ -n "${divnopromena}" ] || divnopromena=

    Ale jinak staci spustit kontrolu jako
    shellcheck -e SC2154 soubor.sh

    pripadne vyrobit ~/.shellcheckrc, ostatne viz: https://github.com/koalaman/shellcheck/wiki/directive
    RAINBOF
    RAINBOF --- ---
    KARIBIKCZ: to na 4x bashi a 3 bashi nejde pouzivat.
    Nemuzes to opravit :)

    GILHAD:
    Jenze to udela
    divnopromena1=1
    divnopromena2=1
    divnopromena3=1
    
    #!/usr/bin/env bash
    
    declare divnopromena
    
    function neco
    {
    printf 'nejaka divna promena %s' "${divnopromena}
    }
    GILHAD
    GILHAD --- ---
    Já bych asi udělal něco jako pomocný soubor proměnne.txt
    divnopromena1=1
    divnopromena2=1
    divnopromena3=1
    a pak
    for i in *.sh; do
    cat promenne.txt $i | shellcheck >$i.txt
    done
    a prošel pak ty výsledky, s tím, že čísla řádků budou o počet divnoproměnných vyšší
    KARIBIKCZ
    KARIBIKCZ --- ---
    RAINBOF: No ja nevim, ale nebylo jednodussi ten kod proste opravit, aby byl ShellCheck spokojeny?

    Takze mit radeji neco jako
    #!/usr/bin/env bash
    
    declare divnopromena
    
    function neco
    {
    printf 'nejaka divna promena %s' "${divnopromena}
    }
    RAINBOF
    RAINBOF --- ---
    vlastne stdin nic neresi

    mam cosi jako

    #!/usr/bin/env bash
    
    function neco
    {
    printf 'nejaka divna promena %s' "${divnopromena}
    }
    

    no a ja bych potreboval nejak ten kousek ${divnopromena} nehlasit.
    RAINBOF
    RAINBOF --- ---
    mam souboru stovky
    RAINBOF
    RAINBOF --- ---
    me to s tim stdin prijde blby :)
    RAINBOF
    RAINBOF --- ---
    no a jak se pak dozvis v kterem souboru mas chybu ?
    THERIDANE
    THERIDANE --- ---
    RAINBOF: Jestli jde o https://github.com/koalaman/shellcheck, kterej stdin neumí, tak následovně (dáš mu to jako virtuální soubor):

    shellcheck <(cat s1.sh s2.sh s3.sh s4.sh s*zbytek.sh)

    ...a máš tak plnou kontrolu nad pořadím, v jakým ty soubory lepíš dohromady, takže si dáš definice na začátek a jedeš.
    RAINBOF
    RAINBOF --- ---
    THERIDANE: dobre, demonstruj myslenku s stdin
    THERIDANE
    THERIDANE --- ---
    RAINBOF: shebang je normální komentář :) speciální význam má jen když to je první byte
    RAINBOF
    RAINBOF --- ---
    to je mozny ale to bych nechtel na zacatku je prece shebang
    MARASAN
    MARASAN --- ---
    RAINBOF: neumi shellchecker STDIN? ze bys mu to vsechno cat-nul ;-)
    RAINBOF
    RAINBOF --- ---
    resim syntax checker pro bash, nasel jsem v system shellchecker ale mam problem ze struktura je takova ze mam co funkci to soubor takze nektere promenne se definuji jinde a ja bych porteboval aby mi je to nekontrolovalo mam jejich seznam je jich asi 50 a ja bych je chtel z kontroly vyloucit jinak ze ze budu pred kazdej vyskyt psat komentar.
    Kliknutím sem můžete změnit nastavení reklam