abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:33 | IT novinky

    Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.

    Ladislav Hagara | Komentářů: 0
    dnes 02:00 | Zajímavý projekt

    Gravity Linux je linuxová distribuce určená pro Apple Silicon s čipy M4 a novějšími. Vydána byla alfa verze pro M4 Mac mini. Gravity Linux je fork Asahi Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Zajímavý projekt

    Hister je osobní soukromý vyhledávač, který lze provozovat na vlastním stroji. Umí prohledávat lokální soubory, importovat historii a záložky z webových prohlížečů, procházet vybrané weby a pomocí rozšíření pro Firefox a Chrome indexovat obsah právě navštívených stránek. Nad vytvořeným indexem pak nabízí vyhledávání prostřednictvím webového rozhraní, příkazové řádky a díky podpoře MCP i nástrojům umělé inteligence. Tento

    … více »
    AfD 💙 | Komentářů: 0
    včera 13:33 | IT novinky

    Ministerstvo dopravy uznalo prozatímní schválení asistenčního systému Tesla FSD Supervised vydané nizozemským schvalovacím orgánem RDW. Připojilo se tak k Nizozemsku a dalším pěti evropským státům. Systém je díky tomuto rozhodnutí možné používat za podmínek prozatímního schválení také na území České republiky. Tesla FSD Supervised je asistenčním systémem úrovně 2 podle klasifikace SAE (částečná automatizace řízení). Řidič se

    … více »
    Ladislav Hagara | Komentářů: 12
    včera 11:22 | Upozornění

    Někteří zákazníci O2 mohou aktuálně zaznamenat zhoršenou dostupnost internetových služeb. Na odstranění potíží se pracuje [Facebook].

    Ladislav Hagara | Komentářů: 7
    včera 01:22 | Nová verze

    PyPy (Wikipedie), tj. implementace Pythonu v RPythonu, alternativa CPythonu v C, byla vydána v nové major verzi 8.0.0. Podporuje Python 2.7, 3.11 a 3.12.

    Ladislav Hagara | Komentářů: 0
    včera 00:22 | Komunita
    V rakouském Štýrském Hradci probíhá konference vývojářů a uživatelů desktopového prostředí KDE Plasma Akademy 2026. O víkendu proběhly přednášky. Videozáznamy jsou k dispozici na YouTube.
    Ladislav Hagara | Komentářů: 3
    20.9. 23:55 | Bezpečnostní upozornění

    V jádře Linux byly nalezeny a v upstremu ve verzích 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 a 7.2.4 již opraveny 4 kritické zranitelnosti umožňující eskalaci práv: DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) a DiagSpill (CVE-2026-74469).

    Ladislav Hagara | Komentářů: 0
    20.9. 23:11 | Zajímavý článek

    Německá policie a celníci zneužívají ke čtení zpráv komunikačních aplikacích WhatsApp, Signal, Telegram nebo Threema velice jednoduchý trik, který nevyžaduje prolomení šifrování, spear phishing, odposlech SMS či jinou technicky náročnou metodu. Příslušníkům státního aparátu pouze stačí získat krátký přístup k odemčenému telefonu a prostřednictvím QR kódu propojit účet s oficiální desktopovou nebo webovou aplikací v policejním

    … více »
    AfD 💙 | Komentářů: 7
    19.9. 02:11 | IT novinky Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2710 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Skript a proměná

    18.4.2017 14:42 Lederer
    Skript a proměná
    Přečteno: 584×
    Dobrý den,

    # cat skript.sh
    #!/bin/bash
    SNAPSHOT="fotky"
    lvcreate -s -L 2G -n $SNAPSHOT-snap /dev/vg01/$SNAPSHOT
    Mám tady ukázku osekaného skriptíku a můj dotaz spočívá v tom, zda a jak se dá udělat, abych v něm nemusel natvrdo psát proměnnou, ale skript bych spustil např. ./skript.sh fotky a všechny proměnné SNAPSHOT by byly fotky. Pak bych zadal např. ./skript.sh root a všechny proměnné SNAPSHOT by byly root atd. Snad je to pochopitelné. Moc díky za nakopnutí:)

    Odpovědi

    18.4.2017 14:58 PEE
    Rozbalit Rozbalit vše Re: Skript a proměná
    #!/bin/bash
    lvcreate -s -L 2G -n $1-snap /dev/vg01/$1
    18.4.2017 15:02 NN
    Rozbalit Rozbalit vše Re: Skript a proměná
    ./skript.sh foo bar
    
    #!/bin/bash
    
    echo "Skript $0 a parametry $1 a $2."
    
    pVit avatar 20.4.2017 12:14 pVit | skóre: 11
    Rozbalit Rozbalit vše Re: Skript a proměná

    Pro pevný počet argumentů:

    #!/bin/bash

    ARG_COUNT=$#

    SCRIPT_NAME=$0

    ARG_1=$1

    ARG_2=$2

    ARG_3=$3

    echo "NAME - $SCRIPT_NAME, Arguments - $ARG_COUNT, 1. argument - $ARG_1, 2. argument - $ARG_2, 3. argument - $ARG_3"

     

    Výstup:

    pi@raspberrypi:~ $ /home/pi/args prvni druhy treti

    NAME - /home/pi/args, Arguments - 3, 1. argument - prvni, 2. argument - druhy, 3. argument - treti

     

     

    Další možností může být naplnění pole argumenty:

    #!/bin/bash

    declare -a ARG_ARRAY=(`echo $@`);

    for i in "${ARG_ARRAY[@]}"

    do echo $i

    done

     

    Výstup:

    pi@raspberrypi:~ $ /home/pi/arguments jedna dva tri ctyri pet

    jedna

    dva

    tri

    ctyri

    pet

    pi@raspberrypi:~ $

    Writing multithreaded code is easy... to get wrong.
    pVit avatar 20.4.2017 13:37 pVit | skóre: 11
    Rozbalit Rozbalit vše Re: Skript a proměná
    Jinak analogicky k tvému problému můžeš udělat script, který vykoná tvůj příkaz pro všechny argumenty.

    #!/bin/bash

    declare -a ARG_ARRAY=(`echo $@`);

    for i in "${ARG_ARRAY[@]}"

    do

    lvcreate -s -L 2G -n $i-snap /dev/vg01/$i

    done

    Pak si dáš jen ./skript.sh fotky root dalsi dalsi a vytvoří ti to všechno automaticky naráz.

    Writing multithreaded code is easy... to get wrong.
    20.4.2017 13:45 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Skript a proměná

    Jakou výhodu získáte tím polem oproti obvyklému

    while [ $# -gt 0 ]; do
        lvcreate -s -L 2G -n "${1}-snap" "/dev/vg01/$1"
        shift
    done
    

    nebo

    for v in "$@"; do
        lvcreate -s -L 2G -n "${v}-snap" "/dev/vg01/$v"
    done
    

    ?

    pVit avatar 20.4.2017 13:59 pVit | skóre: 11
    Rozbalit Rozbalit vše Re: Skript a proměná
    Síla zvyku, mám radši pole pro přehlednost a orientaci při více odkazech do něj. V tomto jednoduchém případě je samozřejmě lepší využít tvůj způsob.
    Writing multithreaded code is easy... to get wrong.
    20.4.2017 20:17 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Skript a proměná
    Jaké pole? Žádné pole v jeho řešení nevidím. Pouze seznamy.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    20.4.2017 22:18 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Skript a proměná

    Slovíčkaření. Když tomu Bash říká Arrays, nevidím důvod nazývat to seznam, najdu tam, co neznám nebo jakkoliv jinak.

    20.4.2017 22:14 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Skript a proměná

    Ne že bych čekal ve jménech zařízení mezery, ale proč je nepodporovat, když to jde? A vůbec, je lepší mít vždycky všechno bezpečně oescapované, pokud se nějak pracuje se vstupem z příkazové řádky.

    #!/bin/bash                                                                                                                                
    ARGS=("$0" "$@")                                                                                                                           
    for idx in "${!ARGS[@]}"; do                                                                                                               
      echo "Argument číslo ${idx}: ${ARGS[idx]}"                                                                                               
    done                                                                                                                                       
    Tohle^^^ taky názorně ukazuje konvenci kolem argv[0] a některé detaily chování "$@". Příklad:
    $ /tmp/zee první 'druhý s mezerami' 't ř e t í' čtvrtý
    Argument číslo 0: /tmp/zee
    Argument číslo 1: první
    Argument číslo 2: druhý s mezerami
    Argument číslo 3: t ř e t í
    Argument číslo 4: čtvrtý
    
    21.4.2017 17:34 thuner
    Rozbalit Rozbalit vše Re: Skript a proměná
    Tohle by se mělo objevovat častěji, používám to osobně ve skriptu s unison a rsync:
    OPTS1=(-copyprog "rsync -aX --rsh='ssh -p 22 -i /root/.ssh/unison/id_rsa -c arcfour' --inplace"
           -copyprogrest "rsync -aX --rsh='ssh -p 22 -i /root/.ssh/unison/id_rsa -c arcfour' --partial --inplace"
           -copythreshold 0
           -copyquoterem true
           )
    
    unison "${OPTS1[@]}" "${OPTS2[@]}" .....
    
    21.4.2017 19:17 Jindřich Makovička | skóre: 17
    Rozbalit Rozbalit vše Re: Skript a proměná
    To echo je tam zbytečně, viz shellcheck. Stačí
    #!/bin/bash
    declare -a ARG_ARRAY=($@)
    for i in "${ARG_ARRAY[@]}"
    do
        lvcreate -s -L 2G -n "$i-snap" "/dev/vg01/$i"
    done
    
    21.4.2017 19:19 Jindřich Makovička | skóre: 17
    Rozbalit Rozbalit vše Re: Skript a proměná
    Oops, vypadly mi uvozovky v declare -a ARG_ARRAY=("$@")

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.