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í
×
    včera 21:44 | Nová verze

    Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    15.9. 21:33 | Nová verze

    Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.

    Ladislav Hagara | Komentářů: 0
    15.9. 21:00 | Komunita

    Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.

    Ladislav Hagara | Komentářů: 0
    15.9. 20:44 | IT novinky

    Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.

    Ladislav Hagara | Komentářů: 2
    15.9. 20:33 | IT novinky

    Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.

    Ladislav Hagara | Komentářů: 0
    15.9. 16:55 | Komunita

    MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 0
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (6%)
     (4%)
     (3%)
     (4%)
     (2%)
    Celkem 187 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Dotaz: Skript a proměná

    18.4.2017 14:42 Lederer
    Skript a proměná
    Přečteno: 518×
    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.