• ú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!)
    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.
    RIVA
    RIVA --- ---
    CHOROBA: Dikes!
    CHOROBA
    CHOROBA --- ---
    https://virt-manager.org/
    libvirt ma API na ktery pristupuje virtman

    seriak je proste seriovej port
    Kliknutím sem můžete změnit nastavení reklam