Stvarno je vrijeme da malo osvježimo, ne samo ovaj dio foruma, nego i naše bash znanje, pa reko da pitam : Zna li ko kako računati u shellu sa decimalnim brojevima tj. brojevima sa zarezom ? expr 1 + 1mi je poznato , nego me interesuje kako varijabli dodijeliti decimalnu vrijednost npr:
pi=3.14
echo $pi
typeset definira integere, ali kako dezimale ???
je li se ko susrećo sa ovim stvarima ?
Koliko je meni poznato, nijedan UNIX shell, osim nekih novijih verzija Korn shella nema ugradjenu floating point aritmetiku, tako da se proracun prepusta nekom eksternom programu, kao sto je bc, perl, awk i sl.
Eto, sad izaberi sta ti je najlakse. Najcesce se koristi bc, iako sva tri programa (programska jezika) imaju C-like operatore, uslove, petlje itd., tako da je u ovom slucaju prilicno svejedno sta koristis:
$ bc << .
for (i = 1; i <= 10; i++) {
if (i % 2 == 1) {
print i, " je neparan broj.n"
} else {
print i, " je paran broj.n"
}
}
.
bc je fino i jednostavno rijesenje . To cu i ugraditi u svoj skript. Inace i gawk izgleda kao vrlo mocan iako cu ga ostaviti za kasnije.
Kad si vec tu da te pitam ( C-programiranje) ima li kakve mogucnosti neke sporedne programe napuniti u memoriju tako da njihovo izvrsavanje bude malo ubrzano? Problem je u tome sto glavni program za vrijeme izvodjenja poziva sporedne programe pa ih uvijek “trazi” po disku i to traje. Ideja je znaci, napuniti te programe u memoriju prije nego na njih dodje red tako da se kasnije svi izvode paralelno. Sorry sto sam ovako radoznao… :-k
Vidim da sam specijalista za “mijenjati temu”. OK, OK nastavimo sa bash-om. Rijec je o jednom skriptu kojem možemo predati neki novčani iznos kao parametar. Skript treba da nam kaze : da li možemo ili nemožemo tačan iznos isplatiti sa novcem kojeg imamo u našem novčaniku. Novac iz novčanika pisemo naravno u jednu datoteku koju će naš skript lijepo učitati.Npr.:
100=0
50=1
20=2
itd…
što znači da novčanica od 100 KM nemamo, dok imamo dvije 20-tke .
Sa C - vrlo lagano, ali sa bash-om ???
Evo jos jednog “bug-a” na kojeg naidjoh pri bash-treningu i nikako ne kontam zašto mi prikazuje uzvičnike gore na početku. Krenimo redom:
Potrebno je prikazati na monitoru zastavicu :
typeset -i x=4
typeset -i y=4
tput clear
tput cup 3 3
echo "+-----------+"
for var in 4 , 5 , 6 , 7 , 8 ; do
tput cup $var 3
printf "! %10s!" " "
done
tput cup $var 3
echo "+-----------+"
while [ $x -le 15 ] ; do
tput cup $y $x
echo "*"
x=3+$x
y=1+$y
done
tput cup 10 3
exit 0
zasto se gore u uglu pokazuju uzvičnici ? for bi trebao odma dodijeliti $var vrijednost od 4 ? Zašto tput skače gore na početak? hmm… :rolleyes:[/b]
Kad se bude imalo vremena
Htjeo sam jos zamoliti ako neko ima lijepih zadataka onako za razonodu i trening, neka postavi. Ali naravno nesto jednostavnije ako moze, da se da rijesiti za nekih max. 30 min. Cisto radi razonode
[quote]
Kad si vec tu da te pitam ( C-programiranje) ima li kakve mogucnosti neke sporedne programe napuniti u memoriju tako da njihovo izvrsavanje bude malo ubrzano? Problem je u tome sto glavni program za vrijeme izvodjenja poziva sporedne programe pa ih uvijek “trazi” po disku i to traje. Ideja je znaci, napuniti te programe u memoriju prije nego na njih dodje red tako da se kasnije svi izvode paralelno. Sorry sto sam ovako radoznao… :-k[/quote]
Nakon duze potrage pronasao sam stranicu koja se iskljucivo time bavi.
Po mom misljenju veoma vrijedna funkcija http://www.pronix.de/index.php?site=C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel9
hm… koliko sam ja shvatio - potrebno je iz basha pokrenuti program koji se nalazi u memoriji ?.. hm … kako to? za ubacivanje c programa u memoriju mi je koliko toliko jasno. ali ovo prvo ne…