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 14:55 | Zajímavý projekt

Vyšlo piate číslo Magazínu KPI — webového časopisu Katedry počítačov a informatiky Technickej univerzity v Košiciach. V čísle sú články o vizualizácii dát v jazyku Python, nástroji Docker, a použití protokolu MQTT.

sergejx | Komentářů: 0
dnes 10:44 | Nová verze

Po dvou a půl měsících vývoje od vydání verze 5.0 byla vydána nová verze 5.1 svobodného open source redakčního systému WordPress. Kódové označením Betty bylo vybráno na počest americké jazzové zpěvačky Betty Carter.

Ladislav Hagara | Komentářů: 0
včera 16:11 | Bezpečnostní upozornění

V Linuxu byla nalezena bezpečnostní chyba CVE-2019-8912. Jedná se o vážnou (CVSS v3.0: 9.8) bezpečnostní chybu typu CWE-416: Use After Free v crypto/af_alg.c. Chyba byla nalezena pomocí detektoru chyb při práci s pamětí KASAN (Kernel Address Sanitizer).

Ladislav Hagara | Komentářů: 5
včera 11:11 | Komunita

Mozilla.cz informuje, že další vydání SeaMonkey se zdrží. Infrastruktura projektu SeaMonkey prochází mnoha změnami. Důvodem je požadavek na nezávislost na infrastruktuře Firefoxu do konce roku, protože jeho vývoj nebude SeaMonkey následovat ve stejném tempu a rozdíly jsou moc veliké. Bohužel se při těchto přesunech nepodařilo udržet vše ve funkčním stavu a tak není možné sestavovat a vydávat nové verze SeaMonkey.

Ladislav Hagara | Komentářů: 0
20.2. 16:55 | Bezpečnostní upozornění

V Drupalu byla nalezena vysoce kritická zranitelnost PSA-2019-02-19. Podrobnosti a opravy 8.5.x a 8.6.x budou zveřejněny dnes mezi 19:00 a 23:00.

Ladislav Hagara | Komentářů: 1
20.2. 16:33 | Zajímavý projekt

Mozilla.cz informuje o stavu češtiny v projektu Common Voice. Projekt Common Voice sbírá hlasová data, na základě kterých bude možné trénovat modely a software pro rozpoznávání řeči. Aktuálně je nutné rozšířit počet vět v datové sadě a alespoň 5 tisíc vět musí být ručně ověřených několika lidmi.

Ladislav Hagara | Komentářů: 0
20.2. 16:22 | Nová verze

Byla vydána nová vývojová verze datového formátu a souvisejících nástrojů Relational pipes. Hlavní novinkou verze v0.10 je nástroj relpipe-tr-guile, který díky GNU Guile umožňuje filtrovat a transformovat relační data pomocí výrazů jazyka Scheme.

xkucf03 | Komentářů: 0
20.2. 00:33 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje na kritickou zranitelnost ve WordPressu umožňující vzdálené spuštění libovolného kódu. Prakticky se jedná o kombinací dvou různých zranitelností (Directory Traversal a Local File Inclusion), pro jejichž úspěšné zneužití musí útočník získat v rámci instance WordPressu alespoň oprávnění autora.

Ladislav Hagara | Komentářů: 2
19.2. 17:33 | Nová verze

Po dvou a půl letech od vydání verze 5.0.0 byla oficiálně vydána nová major verze 6.0.0 správce digitálních fotografií a nově i videí digiKam (digiKam Software Collection). Přehled novinek i s náhledy v oficiálním oznámení. Ke stažení je také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

Ladislav Hagara | Komentářů: 1
19.2. 00:44 | Komunita

Do 2. dubna se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 20. května do 20. srpna 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 1
Máte v desktopovém prostředí zapnutou zvukovou znělku po přihlášení se do systému?
 (8%)
 (1%)
 (90%)
 (1%)
Celkem 383 hlasů
 Komentářů: 11, poslední 14.2. 07:59
Rozcestník

BASH - III

7. 11. 2003 | Jan Fuchs | Návody | 136536×

Tentokrát se podíváme na proměnné, napíšeme si náš první skript a vysvětlíme podmínky a cykly.

Obsah jednotlivých dílů

  1. Úvod, editace příkazové řádky
  2. Základní příkazy, roury a přesměrování
  3. Proměnné, podmínky a cykly
  4. Funkce a příkazy
  5. Dokumenty here, regulární výrazy
  6. Ladění skriptů, odchytávání signálů a příklady

Proměnné

Jsou pouze jednoho datového typu - řetězec znaků. Některé z nich mohou být určeny jen pro čtení. Proměnné můžeme rozdělit do tří částí.

  1. Vnitřní proměnné shellu. O jejich inicializaci se stará shell.

    $ echo $USER
    fuky
    $ echo $OSTYPE
    linux-gnu
    $ echo $LANG
    cs_CZ
    $ echo $SHELLOPTS
    braceexpand:hashall:histexpand:monitor:
    history:interactive-comments:emacs
  2. Uživatelské proměnné. Jako výše uvedené proměnné se skládají pouze z alfanumerických znaků.

  3. Proměnné speciálního významu, skládají se ze speciálních znaků. Například:

    • $$ - PID shellu
    • $! - PID posledního procesu, který byl spuštěn na pozadí
    • $? - návratová hodnota posledního dokončeného procesu.

Proměnnou můžeme exportovat příkazem export do podřízeného shellu a příkazem readonly zajistíme, že bude určena pouze pro čtení (POZOR, toto omezení se nepřenáší do podřízeného shellu). Když chceme získat hodnotu proměnné, napíšeme před ni znak $. Ale když jí např. hodnotu přiřazujeme, nepíšeme před ní znak dolaru. Pro odstranění proměnné použijeme příkaz unset.

$ jedna="Lokální proměnná"
$ export DVA="Proměnná exportovaná do podřízeného shellu"
$ readonly TRI="Proměnná určená pouze pro čtení, ale jen na lokální urovni"
$ export TRI
$ export
declare -x DVA="Proměnná exportovaná do podřízeného shellu"
declare -rx TRI="Proměnná určená pouze pro čtení, ale jen na lokální urovni"
$ readonly
declare -rx TRI="Proměnná určená pouze pro čtení, ale jen na lokální urovni"
$ echo $jedna
Lokální proměnná
$ TRI="Nová hodnota"
bash: TRI: readonly variable
$ bash
$ TRI="Nová hodnota"
$ echo $jedna

$ echo $DVA
Proměnná exportovaná do podřízeného shellu
$ echo $TRI
Nová hodnota
$ unset TRI

První skript

Nadešel čas pro napsání a spuštění našeho prvního skriptu. Pak se ještě na chvíli vrátíme k proměnným. Pojmenujeme ho prvni.sh.

#!/bin/bash

# Tento skript nepotřebuje žádné komentáře
echo "Náš první skript byl právě spuštěn a za 3 vteřiny bude ukončen."
sleep 3
echo "Konec."

exit 0

Prvním řádkem zajistíme, že náš skript bude opravdu interpretován BASHEM. To je jediná výjimka při použití znaku #, řádka začínající tímto znakem je ignorována a slouží k okomentování zdrojového kódu. Každý správný programátor používá ve svých kódech komentáře. Když se k němu po čase vrátí, dříve ho pochopí a také zjednoduší pochopení ostatním. Potřeba naučit se správnému používání komentářů přijde časem sama. Uvidíte, kde jsou zbytečné a kde naopak velice důležité (POZOR, komentáře se píší ihned se zdrojovým kódem - podle mě není dobrý zvyk je psát až po dokončení programu). A nakonec samozřejmě nezapomeneme vrátit návratový kód exit 0.

Nyní si skript spustíme, ale nejprve musíme přidat právo pro spuštění, protože textový editor toto právo standardně k nově vytvořeným souborům nepřidává.

$ ls -l
-rw-r--r--    1 fuky    fuky       114 říj 19 14:43 prvni.sh
$ chmod +x ./prvni.sh
$ ls -l
-rwxr-xr-x    1 fuky    fuky       114 říj 19 14:43 prvni.sh
$ ./prvni.sh
Náš první skript byl právě spuštěn a za 3 vteřiny bude ukončen.
Konec.

Proměnné - dokončení

Nyní, když umíme spouštět skripty, tak si ukážeme na skriptu promenne.sh ještě několik zajímavých věcí.

#!/bin/bash

prvni="Níže uvedený zá"
echo "${prvni}pis umožní oddělit proměnnou od okolního textu"

# Kdyby byla $druha definována, byla by vrácena její hodnota,
# jelikož není, bude vrácen "náhradní výraz"
echo ${druha-"náhradní výraz"}
echo $druha

# To samé jako předchozí, ale $treti nezůstane nedefinovaná
echo ${treti="náhradní výraz"}
echo $treti

ctvrta="Příšerně žluťoučký kůň úpěl ďábelské ódy."

# Vrátí "náhradní výraz" je-li proměnná definována, jinak
# se nevrací žádná hodnota
echo ${ctvrta+"náhradní výraz"}
echo $ctvrta

# Vypíše délku $ctvrta
echo ${#ctvrta}

# Od konce odstraní nejkraší část $ctvrta, která odpovídá e*
echo ${ctvrta%e*}

# Od konce odstraní nejdelší část $ctvrta, která odpovídá e*
echo ${ctvrta%%e*}

# Od začátku odstraní nejkraší část $ctvrta, která odpovídá *e
echo ${ctvrta#*e}

# Od začátku odstraní nejdelší část $ctvrta, která odpovídá e*
echo ${ctvrta##*e}

exit 0

Ještě si skript spustíme pro lepší pochopení.

# ./promene.sh
Níže uvedený zápis umožní oddělit proměnnou od okolního textu
náhradní výraz

náhradní výraz
náhradní výraz
náhradní výraz
Příšerně žluťoučký kůň úpěl ďábelské ódy.
41
Příšerně žluťoučký kůň úpěl ďáb
Příš
rně žluťoučký kůň úpěl ďábelské ódy.
lské ódy.

V shellu si ještě vyzkoušíme několik příkazů, abychom pochopili, jak je to s uvozovkami, apostrofy a expanzí.

$ echo $promenna
./promenne.sh ./prvni.sh
$ echo '$promenna'
$promenna
$ echo "${promenna}vni.sh"
./*vni.sh
$ echo ${promenna}vni.sh
./prvni.sh
$ echo ${promenna}vni.pdf
./*vni.pdf
$ echo "$(echo $promenna) - výpis adresáře"
./promenne.sh ./prvni.sh - výpis adresáře

Podmínky

Skript if.sh nám ukáže použití konstrukce

if výraz; then příkazy elif výraz; then příkazy else příkazy fi

#!/bin/bash

if [ "$USER" == "root" ]; then
  echo "Ahoj admine";
fi

if [ "$USER" == "root" ]; then
  echo "Ahoj admine";
else
  echo "Ahoj uživateli";
fi

if [ "$USER" == "root" ]; then
  echo "Ahoj admine";
elif [ "$USER" == "fuky" ]; then
  echo "Ahoj Honzíku";
else
  echo "Ahoj uživateli";
fi

exit 0

POZOR, mezera za [ je důležitá! Znak [ je totiž program a to, co následuje za ním, jsou jeho argumenty.

$ which [
/usr/bin/[

Jak jsem už jednou říkal, všechny proměnné v shellu jsou jednoho datového typu. To vysvětluje, proč se řetězce a čísla porovnávají níže popsaným způsobem (výraz, výraz1, výraz2 vrací řetězec a teprve když ho chceme porovnávat jako číslo, tak ho shell bere jako číslo, jinak to je stále řetězec).

  • [ výraz ] - délka řetězce je nenulová
  • [ -z výraz ] - délka řetězce je nulová
  • [ výraz1 == výraz2 ] - řetězce jsou shodné
  • [ výraz1 != výraz2 ] - řetězce jsou různé
  • [ výraz1 -eq výraz2 ] - čísla jsou shodná
  • [ výraz1 -le výraz2 ] - výraz1 <= výraz2
  • [ výraz1 -lt výraz2 ] - výraz1 < výraz2
  • [ výraz1 -ge výraz2 ] - výraz1 >= výraz2
  • [ výraz1 -gt výraz2 ] - výraz1 > výraz2
  • [ výraz1 -ne výraz2 ] - čísla jsou různé

Testování souborů.

  • [ výraz1 -ef výraz2 ] - soubory sdílejí stejný i-uzel
  • [ výraz1 -nt výraz2 ] - první soubor je novější
  • [ výraz1 -no výraz2 ] - první soubor je starší
  • [ -e výraz ] - soubor existuje
  • [ -d výraz ] - soubor je adresář
  • [ -f výraz ] - soubor je obyčejný soubor
  • [ -L výraz ] - soubor je symbolický odkaz
  • [ -w výraz ] - soubor je zapisovatelný
  • [ -x výraz ] - soubor je spustitelný

Místo [ můžete používat test. Jsou to stejné programy svázané pevným odkazem.

$ if test /usr/bin/test -ef /usr/bin/\[; then echo "Je to opravdu tak..."; fi
Je to opravdu tak...
$ if [ /usr/bin/test -ef /usr/bin/\[ ]; then echo "Je to opravdu tak..."; fi
Je to opravdu tak...

Podmínky samozřejmě můžete spojovat pomocí operátorů && (a zároveň platí) a || (nebo platí).

# if [ $USER == "root" ] && [ $LANG == "cs_CZ" ]; then
> echo "Jsi český admin"
> fi
Jsi český admin

Na skriptu case.sh se podíváme na použítí konstrukce
case slovo in vzory ) příkazy;; ... esac:

#!/bin/bash

case "$USER" in
  root )
    echo "Ahoj admine"
    ;;
  fuky )
    echo "Ahoj Honzíku"
    ;;
  * )
    echo "Ahoj uživateli"
    ;;
esac

case "$USER" in
  root | fuky )
    echo "Ahoj Honzíku"
    ;;
  * )
    echo "Ahoj uživateli"
    ;;
esac

exit 0

Cykly

Pro tento díl poslední skript cykly.sh nás zasvětí do používání cyklů for, while a until. Podle mě je dobrým zvykem uzavírat proměnné v podmínkách do uvozovek, protože kdyby proměnná obsahovala např. mezeru nebo nic, došlo by k chybě.

#!/bin/bash

# Vypíše všechny soubory v adresáři s příponou sh
for file in *.sh; do
  # Soubor je samozřejmě i adresář a co když nějaký šílenec
  # pojmenuje adresář jmeno_adresare.sh
  if [ -f "$file" ]; then
    echo $file
  fi
done

# Do $cislo bude postupně dosazovat čísla
for cislo in 10 20 30 40 50 60 70 80 90 100; do
  echo $cislo
done

cislo=0
# Podmínka je splněna jestliže $cislo != 100
while [ "$cislo" -ne 100 ]; do
  # Konstrukci $(()) zavedl shell ksh a je rychlejší a méně
  # náročná na systémové zdroje než příkaz expr
  cislo=$((cislo + 10))
  echo $cislo
done

cislo=0
# Cyklus pokračuje dokud není splněna podmínka
until [ "$cislo" -eq 100 ]; do
  cislo=$((cislo + 10))
  echo $cislo
done

exit 0

Do příště máte za domácí úkol všechno si poctivě vyzkoušet.

       

Hodnocení: 43 %

        špatnédobré        

Nástroje: Tisk bez diskuse

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

Komentáře

Vložit další komentář

7.11.2003 09:35 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Bludy
Článek je sice pro začátečníky, ale bludy by se v něm vyskytovat neměly... Předně proměnné nejsou jen jednoho typu, a to i když nepočítám pole za samostatný typ. Bash zná celočíselné proměnné, deklarované declare -i proměnná.
$ declare -i a b
$ a=10; echo $a
10
$ b=asdgsdg; echo $b
0
$ b="a+3*3"; echo $b
19
Vidíme, že integerové proměnné mají zajímavou vlastnost, že se na nich při přiřazení provádí aritmetická expanse -- je to IMHO čitelnější než $((...)). Dále proměnná USER není žádná vnitřní proměnná shellu a LANG bych také neuváděl zrovna jako příklad vnitřní proměnné shellu, protože shell sám ji používá snad jen v lokalizovaných skriptech -- a ten jsem ještě žádný neviděl ;-)
if výraz; then příkazy elif výraz; then příkazy else příkazy fi
potřebuje středníky (nebo konce řádků, to je jedno) i před else a fi.
7.11.2003 10:57 Maud Lebowski
Rozbalit Rozbalit vše Bludy
nerada, ale musim se sneznym muzem souhlasit, asi by tam mela byt zminka o environmentalnich promenych (jako je LANG) na ktere pripouizvani bashe hned narazite a nechapete oc jde
4.2. 08:24 farhan
Rozbalit Rozbalit vše Re: Bludy
Thanks for sharing this information. I really like your blog post very much. You have really shared a informative and interesting blog post with people.. https://www.fcsurplus.ca
7.11.2003 18:08 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Bludy
no ja jen drobnost, že místo výraz bych tam rovnou napsal příkazy, protože tam můžou být libovolné příkazy a pracuje se s návratovým kódem posledního z nich.
if příkazy then příkazy elif příkazy then příkazy else příkazy fi
přičemž každý příkaz musí být zakončený středníkem.
if false;true; then echo OK; fi
což je vlastně stejné jako
false;true;if [ $? -eq 0 ];then echo OK;fi
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
2.2. 08:33 farhan
Rozbalit Rozbalit vše Re: Bludy
I learn some new stuff from it too, thanks for sharing your information. https://www.stanshacks.net/
10.2. 07:32 farhan
Rozbalit Rozbalit vše Re: Bludy
Good article, but it would be better if in future you can share more about this subject. Keep posting. Omaha SEO
Fuky avatar 7.11.2003 19:11 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše RE: Bludy
Děkuji za připomínky. 1. Proměné jsou jen jednoho datového typu ;-)) declare -i proměná pouze shellu říká, že má předpokládat celečíselnou hodnotu proměné a vyhodnotit jí jako aritmetický výraz. Není to, ale v žádném případě definice nového datového typu. Ve skutečnosti je to stále řetězec ke kterému se shell chová jako k číslu. $ a=1 $ b=2 $ declare -i c $ c="$a + $b" $ echo $c 3 $ d=$(($a + $b)) $ echo $d 3 2. Máte pravdu if výraz; then příkazy elif výraz; then příkazy else příkazy fi si každý může vyložit svým způsobem. Slovem příkazy jsem myslel příkaz1; příkaz2; příkaz3;
9.11.2003 02:25 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše RE: Bludy
Ad 1. To je jen takové žonglování se slovíčky. Můžeme samozřejmě říci, že pointer a float v C jsou tytéž datové typy, protože obojí jsou nějaké posloupnosti bajtů (např. čtveřice), jen se s jednou obvykle zachází jako s ukazatelem a s druhou jako s číslem v plovoucí řádové čárce... Nicméně, uživatele jazyka (zejména jazyka vyšší úrovně, jímž shell nepochybně je) naprosto nezajímá, jak jsou věci implementovány interně. Jsou-li proměnné x a y stejného datového typu, musí být možné provést následující přiřazení hodnotou (+ typové konverze)
y=type_of_y(x)
x=type_of_x(y)
a proměnná x musí mít tutéž hodnotu co na začátku -- což samozřejmě nefunguje, je-li y integer a x není. Pozn.: Napsal bych, že jde o podmínku nutnou, ale nikoli postačující, ovšem v praxi je to zamotanější, v obskurních jazycích jako C++ či Perl (Tie), se při přiřazení uživatelského typu může stát v podstatě cokoli, takže podmínku nezávislou na konkrétním typovém systému si nedokáži představit...
27.1. 08:16 best portable kitchen island
Rozbalit Rozbalit vše Re: RE: Bludy
This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information... Semseo 4 You
Kaacz avatar 1.7.2009 18:31 Kaacz | skóre: 10 | Praha 4
Rozbalit Rozbalit vše Re: Bludy

S tím LANG je to právě naopak než si myslíte.

Právě proto, abyste měl jasně definovaný jazyk výstupů příkazů a aplikací pro následné parsování ve skriptu, je vhodné si na počátku skriptu nastavit LANG=C.

V dnešní době používání linuxu na desktopu s jazykem jiným než EN to dělám zcela běžně.

Jsem uz moc stary na pouzivani windows .. / Optimismus je jen nedostatek informaci ..
16.1. 09:19 farhan
Rozbalit Rozbalit vše Re: Bludy
This is really a nice and informative, containing all information and also has a great impact on the new technology. Thanks for sharing it, party tents
26.1. 08:04 Profi Kassen
Rozbalit Rozbalit vše Re: Bludy
Thank you for some other informative blog. Where else could I get that type of information written in such an ideal means? I have a mission that I’m just now working on, and I have been at the look out for such information. Smooth and popcorn free
7.11.2003 10:33 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Díky
Připomínka od Yetiho na místě - souhlasím. Ale rád bych poděkoval autorovi, že se okrádá o svůj čas a píše tento seriál. Čtu ho rád a leccos se přiučím. Díky David.
8.11.2003 04:54 dany
Rozbalit Rozbalit vše krajsi for
stalo by za to uviest for aj trochu inak. predsa len vymenovat vsetky moznosti je blbost, ked ide o cisla, medzi ktorymi je jasny vztah :)
for ((i=10;i<=100;i=i+10)); do 
  echo $i; 
done
9.11.2003 02:32 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše krajsi for
to dost závisí na tom, jestli a jak se ta množina čísel může v budoucnu měnit -- for-cyklus je rozhodně méně čitelný než např.
for cislo in {1,2,3,4,5,6,7,8,9,10}0; do
  echo $cislo
done
což je vůbec má oblíbená metoda vytváření seznamů...
10.11.2003 21:06 Michal Fikera
Rozbalit Rozbalit vše krajsi for
Moje oblibena metoda je for i in `seq 10 10 100`.
27.5.2008 11:42 pou | skóre: 16
Rozbalit Rozbalit vše Re: krajsi for
Ahoj, chci si udělat takovy jednoduchy skript, ktery pomoci acping zjisti MAC adresu. v promenne $MAC mam vzdy mac adresu nejakeho pc, kterou chci ulozit do souboru zk. Pokud spustim skript podruhe, potrebuju a by mac adresy kterou uz v souboru jsou se nezapsaly, a nove(ty ktere v souboru "zk" nejsou se do nej zapsaly. Myslel jsem ze by to mohlo vypadat nejak takto:

#!/bin/bash for ip_adresa in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; do echo "testuje se adresa $ip_adresa" MAC=`arping -c 1 -I eth0 192.168.30.$ip_adresa | egrep -o '\[.*\]' | tr -d []` echo "promenna MAC je $MAC" if [ $MAC==cat /home/pou/Plocha/zk|grep $MAC]; then echo "adresa uz v souboru je" else $MAC >> /home/pou/Plocha/zk fi
24.1. 07:59 Profi Kassen
Rozbalit Rozbalit vše Re: krajsi for
This is such a great resource that you are providing and you give it away for free. cong bong bong su kien
27.5.2008 11:46 pou | skóre: 16
Rozbalit Rozbalit vše Re: krajsi for
Ahoj, chci si udělat takovy jednoduchy skript, ktery pomoci acping zjisti MAC adresu. v promenne $MAC mam vzdy mac adresu nejakeho pc, kterou chci ulozit do souboru zk. Pokud spustim skript podruhe, potrebuju a by mac adresy kterou uz v souboru jsou se nezapsaly, a nove(ty ktere v souboru "zk" nejsou se do nej zapsaly. Myslel jsem ze by to mohlo vypadat nejak takto:
#!/bin/bash for ip_adresa in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; do
echo "testuje se adresa $ip_adresa"
MAC=`arping -c 1 -I eth0 192.168.30.$ip_adresa | egrep -o '\[.*\]' | tr -d []`
echo "promenna MAC je $MAC"
if [ $MAC==cat /home/pou/Plocha/zk|grep $MAC];
then echo "adresa uz v souboru je"
else
$MAC >> /home/pou/Plocha/zk
fi
27.12.2012 18:52 Tomáš
Rozbalit Rozbalit vše Re: BASH - III
Zdravím, chcel by som sa spýtať ako naplním prememnú sám? neviem na to prísť. Ďakujem
5.12.2018 10:15 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
I felt very happy while reading this site. This was really very informative site for me. I really liked it. This was really a cordial post. Thanks a lot!. Free standing sign holder
30.12.2018 08:50 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
Its a great pleasure reading your post.Its full of information I am looking for and I love to post a comment that "The content of your post is awesome" Great work. travel the world
23.1. 07:53 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
This is a brilliant blog! I'm very happy with the comments!.. SEO
3.11.2018 10:42 syed danish
Rozbalit Rozbalit vše Re: BASH - III
All the contents you mentioned in post is too good and can be very useful. I will keep it in mind, thanks for sharing the information keep updating, looking forward for more posts.Thanks Network Marketing
18.11.2018 09:10 syed danish
Rozbalit Rozbalit vše Re: BASH - III
Your website is really cool and this is a great inspiring article. Umzugsunternehmen Berlin
22.11.2018 09:56 syed danish
Rozbalit Rozbalit vše Re: BASH - III
I like this post,And I guess that they having fun to read this post,they shall take a good site to make a information,thanks for sharing it to me. travel information
24.11.2018 14:09 syed danish
Rozbalit Rozbalit vše Re: BASH - III
Your website is really cool and this is a great inspiring article. Thank you so much. riverfront residences price
27.11.2018 12:40 best portable kitchen island
Rozbalit Rozbalit vše Re: BASH - III
I would like to say that this blog really convinced me to do it! Thanks, very good post. fastest electric scooter under 300
3.1. 10:51 farhan
Rozbalit Rozbalit vše Re: BASH - III
I recently found many useful information in your website especially this blog page. Among the lots of comments on your articles. Thanks for sharing. ultimatedog.info
1.12.2018 06:59 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have enjoyed reading. Nice blog, I will keep visiting this blog very often. commercial awnings
4.12.2018 08:26 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
Excellent information on your blog, thank you for taking the time to share with us. Amazing insight you have on this, it's nice to find a website that details so much information about different artists. sport bike
4.12.2018 12:00 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
this is really nice to read..informative post is very good to read..thanks a lot! park cononial price
12.12.2018 09:52 farhan
Rozbalit Rozbalit vše Re: BASH - III
Thankyou for this wondrous post, I am glad I observed this website on yahoo. online marketing agency
15.12.2018 07:04 farhan
Rozbalit Rozbalit vše Re: BASH - III
I can set up my new idea from this post. It gives in depth information. Thanks for this valuable information for all,.. Molokini Snorkeling
17.12.2018 08:13 farhan
Rozbalit Rozbalit vše Re: BASH - III
Nice post. I was checking constantly this blog and I am impressed! Extremely helpful information specially the last part I care for such info a lot. I was seeking this particular information for a very long time. Thank you and good luck. The Support Local Movement
7.1. 11:44 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
I gotta favorite this website it seems very helpful . ukrayna üniversitesi
19.12.2018 09:42 farhan
Rozbalit Rozbalit vše Re: BASH - III
This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post! פורץ מנעולים בחיפה
20.12.2018 07:41 farhan
Rozbalit Rozbalit vše Re: BASH - III
Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place.. lol boosting
24.12.2018 08:48 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
This one is good. keep up the good work!.. this
25.12.2018 08:07 farhan
Rozbalit Rozbalit vše Re: BASH - III
Thank you so much for the post you do. I like your post and all you share with us is up to date and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job. email verifier
25.12.2018 09:22 jirka
Rozbalit Rozbalit vše Re: BASH - III
Chtělo by to opravdu vysvětlit tak, aby to pochopil začátečník.Nemyslíte? Podle toho není ani jasné kam co psát,když bych si chtěl skriptik napsat.
26.12.2018 07:45 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much. PLTNUM
6.1. 09:43 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place.. Entrepreneurship
15.1. 11:41 Profi Kassen
Rozbalit Rozbalit vše Re: BASH - III
The information you have posted is very useful. The sites you have referred was good. Thanks for sharing... fishing trout in river

Založit nové vláknoNahoru

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