Naplnenie pola hodnotou – OS - GNU / Linux – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Naplnenie pola hodnotou – OS - GNU / Linux – Fórum – Programujte.comNaplnenie pola hodnotou – OS - GNU / Linux – Fórum – Programujte.com

 

Kent0
Stálý člen
25. 10. 2014   #1
-
0
-

Ahojte
mám problém pri naplnení poľa hodnotou 
mám definované 3 polia 
 

set pole = `prikaz`
set pole2 = `prikaz`
set pole3 = `prikaz`
set vysledne_pole = () 

pričom v poliach pole a pole2 mám číselné hodnoty

v cykle while prechádzam polia a testujem dve hodnoty polí v podmienke if..keď vyhovujú podmienke tak chcem aby sa do vysledne_pole uložil prvok z pole3

ale príkazom

vysledne_pole = "$pole3[1]"

mi hádže chybu "vysledne_pole: Command not found" ..a neviem ako to spraviť inak..prečo mi to vysledne_pole berie ako príkaz..

Príklad ako vyzerajú dané polia:

pole3[1] = meno IP den mesiac cas_zaciatku cas_konca

pole[1] = cas_zaciatku

pole[2] = cas_konca

a keď je ten čas v danom intervale tak chcem aby sa do vysledne_pole uložil celý riadok z pole3[1]

Nahlásit jako SPAM
IP: 147.175.176.–
Kent0
Stálý člen
25. 10. 2014   #2
-
0
-

OPRAVA

v príklade ako vyzerajú polia

namiesto pole[2]  má byť pole2[1]

Nahlásit jako SPAM
IP: 147.175.176.–
jistr
~ Moderátor
0
Návštěvník
25. 10. 2014   #3
-
0
-

#1 Kent

Jestli je to bash, tak tohle:

set pole = `prikaz`

taky neudělá co bys chtěl. Přiřazení do proměnné se dělá takto:

pole=`prikaz`

# dalsi priklad:
vysledne_pole="$pole3[1]"

Je důležité tam nedat mezery kolem rovnítka, jinak se to bere jako volání příkazu, což je přesně důvod té chyby kterou vidíš u toho dalšího příkazu ("vysledne_pole: Command not found").

Nahlásit jako SPAM
IP: 94.112.36.–
Software Engineer @ Red Hat
Kent0
Stálý člen
25. 10. 2014   #4
-
0
-

#3 jistr
Píšem to v csh a  

set pole = `prikaz`

spraví to čo má :) odtestoval som si to.

Spravil som to tak ako si napísal a ak platí podmienka tak som dal 

vysledne_pole="$pole3[1]"

Ale keď to spustím tak mi to pole aj vypíše a pritom tam nemám echo. 

Nahlásit jako SPAM
IP: 147.175.176.–
Kit+15
Guru
25. 10. 2014   #5
-
0
-

#4 Kent
Nechybí ti tam "set"?

Na náročnější výpočty, kde se vyskytuje nějaké pole, raději použiji jiný jazyk než shell - např. Perl, Python, PHP nebo cokoliv jiného.

Také je dobré si vymyslet jiné názvy proměnných než pole, pole2 a pole3. Beztak ani jedno z toho není pole.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:589e:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kent0
Stálý člen
25. 10. 2014   #6
-
0
-

#5 Kit
Mám zadané aby som to písal v shell-i.
Skúsil som to spraviť cez príkaz awk ale keď si na začiatok do nejakej premennej napr velkost uložím počet napr 3 a potom dám príkaz  aby vypísalo len dané riadky kde je číslo väčšie ako číslo v premennej velkost tak mi ich vypíše všetky

príkaz je  

#hodnota ktoru porovnavam je v prvom stlpci
awk '$1 > $velkost'
Nahlásit jako SPAM
IP: 147.175.176.–
Kit+15
Guru
25. 10. 2014   #7
-
0
-

#6 Kent
Tak to tě lituji. Začátečníci by se podle mne neměli učit Flyweight, ale objektové řešení.

$velkost se neexpanduje vně awk, ale uvnitř. Tedy má vždy hodnotu 0. Zkus to jinak: 

awk '$1 > '"$velkost"
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:589e:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kent0
Stálý člen
25. 10. 2014   #8
-
0
-

#7 Kit
Ja sa tiež ľutujem ale je to zaujímavé aj keď sa to učím menej ako mesiac :) 
 

awk '$1 > '"$velkost"

funguje perfektne..ďakujem :) 

Nahlásit jako SPAM
IP: 147.175.176.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

Podobná vlákna

Problém s hodnotou if . — založil w3q

Práce s hodnotou čas — založil VasekTrain CZ

Promněné se stejnou hodnotou — založil Akimi Keita

Tlačítko s hodnotou php — založil Ondra

Porovnání seznamu s hodnotou — založil Kristina

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý