Natrag   Forum.hr > Informatička tehnologija > Za napredne korisnike > Linux, UNIX i ostali unixoidi

Linux, UNIX i ostali unixoidi Open source OS-ovi i sve o njima

Odgovor
 
Tematski alati Opcije prikaza
Old 30.09.2016., 05:56   #861
Ne ulazeci u funkcionalost same skripte ...

Za string duljine 0 preporucam koristenje par portablinih formulacija :
Kod:
EMPTYVAR=""
FULLVAR="junk"
if [ -z "$VAR" ]; then
printf "%s\n" "$VAR is zero length"
fi
##
[ $FULLVAR ] && printf "%s\n" "Has value" || printf "%s\n" "No value"
[ $EMPTYVAR ] || printf "%s\n" "No value"
##
if [ $FULLVAR ]; then
printf "%s\n" "Has value"
fi
test - evaluate expression
Kod:
-z  string
True if the length of string string is zero; otherwise, false.
string
True if the string string is not the null string; otherwise, false.
Naravno i = radi, no skloniji sam koristit gore navedeno zbog citljivosti koda te zato jer testiramo prazan string ili string duljine 0 za sto vec postoje operatori unutar shella za tu svrhu.

Isto tako, tvoj kod podrazumjeva da naredba grep uvijek radi odnosno vrati ili ne vrati string
U slucaju da datoteka koju grepas ne postoji, dobit ces isto tako prazan string te gresku grepa na stderr.
Nebi bilo lose na pocetku programa provjeriti jel datoteke s kojim radis postoje u startu te izici ako ne postoje da se program ne vrti dalje bezveze
Ili hvatati i handlati stderr od programa koje pokreces unutar svoje skripte u tvom slucaju grep.

Isto tako, manual update_drv komande kaze da svi exit codovi iznad nule znace gresku, pa nebi bilo lose odhandlati i to koristeci $? nakon izvrsavanja update_drv.

Pizacjla sam znam, no sto vise situacija pokrijes manje ces odrzavati i debagirati probleme u buducnosti.

Pozdrav.
__________________
Just look them out there all those little figures dissolving in light. Rather like fairy land, except for smell of gasoline and burning flesh.
Hmmm is offline  
Odgovori s citatom
Old 30.09.2016., 12:55   #862
Puno hvala na savjetima.
Staromodan is offline  
Odgovori s citatom
Old 01.10.2016., 10:48   #863
Quote:
Hmmm kaže: Pogledaj post
Pizacjla sam znam, no sto vise situacija pokrijes manje ces odrzavati i debagirati probleme u buducnosti.
Nisi picajzla nego ispravno razmišljaš, te svatko kdo ti veli da si picajzla nije materijal za inžinjera a još manje za informatiku (sad se fakat suzdržavam, jer mi mozgom trenutno na baš tu temu prolijeću raznorazni "epiteti" epskih razmjera te razni načini na koje se nekoga može dobro izlemati v nekoj mračnoj slijepoj ulici).

Računala su izuzetno kompleksni uređaji, robustni programi su danas vrlo rijetki, stoga je izuzetno, jako, jako važno i bitno da ljudi koji pišu programe budu picajzle. Dobri inžinjeri moraju i trebaju biti picajzle, jer kao ljudi koji za kruh zarađuju time da znanost pretvaraju v korisne stvari, naša je ODGOVORNOST DRUŠTVU da ljudima v ruke damo stvari koje delaju dobro i pouzdano.
Quote:
Pozdrav.
Servus!
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?
Annatar is offline  
Odgovori s citatom
Old 01.10.2016., 10:52   #864
Quote:
Staromodan kaže: Pogledaj post
Jel ovo tocno ili sam negdje pogrijesio?
Budem pogledal kak sem to rješl prvom prilikom, čim uhvatim vremena.
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?
Annatar is offline  
Odgovori s citatom
Old 07.10.2016., 11:30   #865
Dakle ovak, ja sem to rjesl na sljedeci nacin: buduci da je Murayama-san dosljedan, napravl sem framework za automatsku izgradnju i generiranje paketa koji se sastoji od:

../../lib/NIC-drivers/postinstall.m4 predloska;
../../lib/NIC-drivers/preremove.m4 predloska;
../../lib/NIC-drivers/extractdevlist programa, za ekstrakciju PCI identifikacijskih stringova;
../../lib/NIC-drivers/driver.conf.template predloska, koji Makefile modificira prije paketiranja, te kojega onda paket dostavlja u /kernel/drv/;
../../lib/NIC-drivers/Makefile datoteke, koja to vse kontrolira i gradi.

Makefile v sebi sadrzi logiku za automatsku dekompresiju, dearhiviranje, kompiliranje, povezivanje ("linking") te generiranje paketa direktno iz Murayama-sanove izvorne arhive.

Za modifikacije gore navedenih datoteka sem koristil m4(1) makro preprocesor.

postinstall.m4,
Kod:
#!/sbin/sh

DEVLIST=DevList
Driver="ANTR_DRIVER"

if [ "$PKG_INSTALL_ROOT" = "" ]
then
        PKG_INSTALL_ROOT="/"
        ClientRoot=""
else
        ClientRoot="$PKG_INSTALL_ROOT"
fi

DEVLIST2=""
for i in $DEVLIST
do
        PCIdev="``grep $i ${ClientRoot}/etc/driver_aliases`"
        if [ "$PCIdev" = "" ]
        then
                DEVLIST2="$DEVLIST2 $i"
        fi
done
if [ "$DEVLIST2" != "" ]
then
        /usr/sbin/add_drv -b $PKG_INSTALL_ROOT -n -v -m '* 0600 root sys'' -i "$DEVLIST2" $Driver
fi

/usr/bin/touch ${ClientRoot}/reconfigure
preremove.m4,
Kod:
#!/sbin/sh

Driver="ANTR_DRIVER"

if [ "$PKG_INSTALL_ROOT" = "" ]
then
        PKG_INSTALL_ROOT="/"
fi
/usr/sbin/rem_drv -b $PKG_INSTALL_ROOT $Driver
exit 0
exit 0 je tu bitan jer se driver ponekad ne moze odmah deaktivirati (ako se na primjer tokom deinstalacije koristi).

E sad, za ove gore .m4 datoteke postoji meta u Makefileu. Na primjer,
Kod:
postinstall: Makefile ${LibDir}/postinstall.m4 ${LibDir}/extractdevlist
        m4 -D DevList="`${LibDir}/extractdevlist ${SourceDir}/adddrv.sh`" ${Preprocess}
preremove meta,
Kod:
preremove: Makefile ${LibDir}/preremove.m4
        m4 ${Preprocess}
kvaka je u ${Preprocess} make(1S) makrou, jer pomocu tog make(1S) makroa m4(1) odradi vecinu posla,
Kod:
Preprocess              = -D ANTR_DRIVER=${Driver} ${LibDir}/[email protected] > $@
extractdevlist,
Kod:
#!/usr/bin/nawk -f -
BEGIN \
{
        FS = "'";
        i = -1;
}

($2 ~ /pci|usb/) && (! /^#/) \
{
        Array[++i] = $2;
}

END \
{
        printf("'");
        if(i > 0)
        {
                for(j = 0; j < i; ++j)
                {
                        printf("%s ", Array[j]);
                }
                printf("%s'\n", Array[j]);
        }
        else
        {
                printf("%s'", Array[0]);
        }
}
Na kraju, make(1S) izbaci generirane programe (ako su se ovisnosti deklarirane u Makefileu promijenile), te generira SVR4 driver paket. Na primjer, pogledajmo generirani postinstall za alta(7D) driver,
Kod:
DEVLIST='"pci1186,1002" "pci13f0,201" "pci13f0,200"'
#!/sbin/sh

Driver="alta"

if [ "$PKG_INSTALL_ROOT" = "" ]
then
        PKG_INSTALL_ROOT="/"
        ClientRoot=""
else
        ClientRoot="$PKG_INSTALL_ROOT"
fi

DEVLIST2=""
for i in $DEVLIST
do
        PCIdev="`grep $i ${ClientRoot}/etc/driver_aliases`"
        if [ "$PCIdev" = "" ]
        then
                DEVLIST2="$DEVLIST2 $i"
        fi
done
if [ "$DEVLIST2" != "" ]
then
        /usr/sbin/add_drv -b $PKG_INSTALL_ROOT -n -v -m '* 0600 root sys' -i "$DEVLIST2" $Driver
fi

/usr/bin/touch ${ClientRoot}/reconfigure
te generirani preremove program za isti,
Kod:
#!/sbin/sh

Driver="alta"

if [ "$PKG_INSTALL_ROOT" = "" ]
then
        PKG_INSTALL_ROOT="/"
fi
/usr/sbin/rem_drv -b $PKG_INSTALL_ROOT $Driver
exit 0
Usput,
Kod:
> hg log --template '{date|rfc822date}' postinstall.m4
Sat, 23 May 2009 20:26:19 +0200
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?

Zadnje uređivanje Annatar : 07.10.2016. at 12:12.
Annatar is offline  
Odgovori s citatom
Old 09.10.2016., 09:59   #866
Oprez, red 17 postinstall.m4 datoteke sadrzi sintaksu gresku :
Kod:
17         PCIdev="``grep $i ${ClientRoot}/etc/driver_aliases`"
                   ^ tu.
Ovo je vjerovatno jedan od razloga da se preferira $(...) umjesto `...`, zbog citljivosti te se nalazi se u standardu.
Kod:
2.6.3 Command Substitution
..........
$(command)
or (backquoted version):
`command`
Naravno ako se bas forsira legacy shell, moraju se koristit backticks.
__________________
Just look them out there all those little figures dissolving in light. Rather like fairy land, except for smell of gasoline and burning flesh.
Hmmm is offline  
Odgovori s citatom
Old 10.10.2016., 08:41   #867
Quote:
Hmmm kaže: Pogledaj post
Oprez, red 17 postinstall.m4 datoteke sadrzi sintaksu gresku :
Kod:
17         PCIdev="``grep $i ${ClientRoot}/etc/driver_aliases`"
                   ^ tu.
Jok, ak me sečanje dobre služi (to sem napisal još davne 2007.) to ni greška, neg escape sintaksa za SVR4 m4(1).
Quote:
Ovo je vjerovatno jedan od razloga da se preferira $(...)
$() radi samo u POSIX compliant Bourne shellovima te bashu i ima za prednost to da ne pokreće podproces, nego aplikaciju odvrti unutar postojećeg shella. Međutim, ne dela v originalnom Bourne shellu, a kak POSIX podrška varira od OS-a do OS-a, ja $() obično ne koristim, jer mi tulike velike brzine izvršenja ni treba.

Drugim riječima, za $() ili koristiti ksh, ili ne uopće. Ja sem svjesno odabral ne uopće, osim ak nemam jasan scenario korištenja, a to do sada još nisem imal. Portabilnost mi je draža, dakle backticks.

Vidiš da ne koristim čak ni /bin/sh, neg /sbin/sh (iako je lako moguće da je /bin/sh hardlink na /sbin/sh na Solarisu / illumosu). Originalni Bourne shell izričito forsiram zbog toga jer je najniži denominator, dakle programi napisani v njemu delaju v svim shellovima koji su v Bourne shell porodici.

Napišem jednom, dela svugde.
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?

Zadnje uređivanje Annatar : 10.10.2016. at 08:56.
Annatar is offline  
Odgovori s citatom
Old 12.10.2016., 19:28   #868
Quote:
Hmmm kaže: Pogledaj post
Oprez, red 17 postinstall.m4 datoteke sadrzi sintaksu gresku :
Kod:
17         PCIdev="``grep $i ${ClientRoot}/etc/driver_aliases`"
                   ^ tu.
Ni mi vrag dal mira, pak sem isel provjeriti jel' sem fakat sfusal,
Kod:
NIC-drivers/ANTRgani> rm postinstall; make postinstall
m4 -D DevList="`../../lib/NIC-drivers/extractdevlist ../../../src/NIC-drivers/gani-0.8.20/adddrv.sh`" -D ANTR_DRIVER=gani ../../lib/NIC-drivers/postinstall.m4 > postinstall
NIC-drivers/ANTRgani> hg diff postinstall
`hg diff postinstall` ne vraca nazaj nis, znaci da je frisko generirani postinstall identican onome kaj je v Mercurialovoj bazi podataka. OK, ampak je morti postinstall krivi?
Kod:
NIC-drivers/ANTRgani> cat postinstall 
#!/sbin/sh

DEVLIST='"pci10ec,8169" "pci1259,c107"'
Driver="gani"

if [ "$PKG_INSTALL_ROOT" = "" ]
then
        PKG_INSTALL_ROOT="/"
        ClientRoot=""
else
        ClientRoot="$PKG_INSTALL_ROOT"
fi

DEVLIST2=""
for i in $DEVLIST
do
        PCIdev="`grep $i ${ClientRoot}/etc/driver_aliases`"
        if [ "$PCIdev" = "" ]
        then
                DEVLIST2="$DEVLIST2 $i"
        fi
done
if [ "$DEVLIST2" != "" ]
then
        /usr/sbin/add_drv -b $PKG_INSTALL_ROOT -n -v -m '* 0600 root sys' -i "$DEVLIST2" $Driver
fi

/usr/bin/touch ${ClientRoot}/reconfigure
Kulike vidim, generirani kod je tocan. Dakle, secanje me jos uvijek dobre sluzi i zarulja v piksi dela
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?
Annatar is offline  
Odgovori s citatom
Old 01.01.2017., 23:23   #869
Htio bi isprobat neku illumos distribuciju u edukativne svrhe na svojem amd64 PC-u. Jedino što me zasad muči je hoću li moći ostvaritit wifi konekciju? Ima li illumos driver za moj usb atheros adapter? Možda neko ko zna ovdje može iščitati iz illumosov sors treeja za mene? =)
Znam da vjerovatno takve stvari su illumos kernel developerima najmanje bitne al vrijedi pitat jel?
btw. ekvivalent bi bio `athn` iz OpenBSDa http://man.openbsd.org/athn

Ako mi nema druge dajte mi link na neku recent "live?" distribuciju da isprobam in vivo, jel...
MacGyver is offline  
Odgovori s citatom
Old 02.01.2017., 02:38   #870
Quote:
MacGyver kaže: Pogledaj post
Htio bi isprobat neku illumos distribuciju u edukativne svrhe na svojem amd64 PC-u. Jedino što me zasad muči je hoću li moći ostvaritit wifi konekciju? Ima li illumos driver za moj usb atheros adapter? Možda neko ko zna ovdje može iščitati iz illumosov sors treeja za mene? =)
Znam da vjerovatno takve stvari su illumos kernel developerima najmanje bitne al vrijedi pitat jel?
btw. ekvivalent bi bio `athn` iz OpenBSDa http://man.openbsd.org/athn

Ako mi nema druge dajte mi link na neku recent "live?" distribuciju da isprobam in vivo, jel...
No way MacGyver;

https://www.illumos.org/hcl/

https://github.com/qca/open-ath9k-htc-firmware

Edukativno bi bilo znati koristiti ugradjenu mreznu karticu umjesto neke lude USB-Wifi kombinacije. Vecina mreznih kartica ima siroku podrsku. Toliko o tome..
__________________
“ teško je nama šta bi tili bit ljudi parimo nenormalni, ludi al’ smo oni šta se bore i kad je najgore dio smo faune i flore imamo ljubav i more”
z3r01 is offline  
Odgovori s citatom
Old 02.01.2017., 09:59   #871
Quote:
MacGyver kaže: Pogledaj post
Htio bi isprobat neku illumos distribuciju u edukativne svrhe na svojem amd64 PC-u. Jedino što me zasad muči je hoću li moći ostvaritit wifi konekciju?
Mozes probati OmniOS, ali poglec, illumos derivati su dizajnirani za servere, datacentre, cloud. Pogotovo cloud, kao na primjer Joyentov cloud on a laptop, CoaL. Vecina illumos inzinjera koristi macOS X laptope ili Mac desktop racunala (ja sem jeden od rijetkih koji kao primarni desktop koristi Solaris 10 i86pc, ali isto koristim i macOS X laptop).

Toplo ti preporucam da v VirtualBoxu skines SmartOS ISO ili USB image i pokrenes njega. SmartOS se ne instalira jer se vrti direktno iz memorije kao VMware ESX, trebaju ti samo diskovi za virtualne strojeve koje bus vrtil unutar SmartOSa. Cim ga pokrenes mozes odmah poceti z citanjem man stranica, koje su reda magnitude detaljnije od GNU/Linuxovih, pogotovo stoga, kaj imaju primjere ("EXAMPLES"), jer je to na UNIXu standard.

kreni prvo od
Kod:
$ man -s 1 intro
...ostali odjeljci su: 1M, 2, 3, 4, 5, 6, 7, 9. Procitaj si uvode za vse te odjeljke i dobil bus prilicno dobar pregled / osjecaj kaj je kaj te gdi je kaj.

Kad projdes uvode, sicher bus imal pitanja. Onda dojdi sim i pitaj.
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?
Annatar is offline  
Odgovori s citatom
Old 02.01.2017., 20:53   #872
Quote:
MacGyver kaže: Pogledaj post
Ako mi nema druge dajte mi link na neku recent "live?" distribuciju da isprobam in vivo, jel...
https://www.openindiana.org/download/
Za edukativne svrhe je OpenIndiana više nego dobra distribucija.
__________________
Ne to!
Florest Glimp is offline  
Odgovori s citatom
Old 14.01.2020., 15:04   #873
ošini po prašini...

Neki noviji "masna plata" diskovi vole jako često iti spat, pa sam onda zmislil toplu vodu, tj. skriptu: napravise neka datoteka i odma obrise tren prije nego enterparadajz zahrče.

Što se tiče ostalog, jel smartos još uvijek koristi grub? Tek sam nedavno skužio da je omnios prešao na stari bsd-ov boot loader.
Staromodan is offline  
Odgovori s citatom
Old 15.01.2020., 13:23   #874
Hrpa problema s bootanjem SmartOS (Usb u ovom slucaju) sve dok, long story short, nisam skuzil da mi ne prepoznaje neke RAM stickove. Radi toga je na novom poolu doslo do kernel panic i disable nekog modula(imam event ID, time teoretski i koji modul). Na srecu nist nije odapelo nego je trebalo ocistit prašinu sad je sve ok s prvim pool-om al, ili tek primjecujem ili je nakon toga prisutan problem: / filesystem is full onda kad probam curl-ati noviji bootstrap. / mount je ramdisk:a, kapacitet koja stotka MB i 100% full.

Postam tu, ako nista, idem na mailing listu
__________________
‘Behold! The shadow of my thought shall lie upon them wherever they go, and my hate shall pursue them to the ends of the world.‘
moriel is offline  
Odgovori s citatom
Old 16.01.2020., 15:03   #875
Kroz maglu se sjećam da je nekad prije znalo biti sličnih opisanih problema na stranim forumima. Nije mi se to još dogodilo. Pričekaj još malo ako nije hitno, možda se javi netko iskusniji, ako ne onda probaj pitati njih.
Staromodan is offline  
Odgovori s citatom
Old 16.01.2020., 22:05   #876
Quote:
Staromodan kaže: Pogledaj post
Kroz maglu se sjećam da je nekad prije znalo biti sličnih opisanih problema na stranim forumima. Nije mi se to još dogodilo. Pričekaj još malo ako nije hitno, možda se javi netko iskusniji, ako ne onda probaj pitati njih.
U principu / je ramdisk i nije persistent(tak da bi se trebalo osloboditi kod reboota). U dokumentaciji je isto u primjerima 264Mb, a 217 zauzeto.

“ The root filesystem is a ramdisk which you should write to sparingly under normal circumstances.”

Samo meni je 100% full i to znaci da ne mozes vise povuci recimo bootstrap.
__________________
‘Behold! The shadow of my thought shall lie upon them wherever they go, and my hate shall pursue them to the ends of the world.‘
moriel is offline  
Odgovori s citatom
Old 17.01.2020., 18:30   #877
Quote:
moriel kaže: Pogledaj post
sad je sve ok s prvim pool-om al, ili tek primjecujem ili je nakon toga prisutan problem: / filesystem is full onda kad probam curl-ati noviji bootstrap. / mount je ramdisk:a, kapacitet koja stotka MB i 100% full.
/ datotečni sustav je loopback-montiran read only z RAMDisk-a. I to je namjerno tak dizajnirano. Jedino se more pisati po ZFS poolu i /usbkey, zato jer je globalna zona hypervisor.

Works as designed.
__________________
Alas for the weakness of the great! Mighty king is Gil-Galad, and wise in all lore is master Elrond, and yet they will not aid me in my labors. Can it be that they do not desire other lands to become as blissful as their own, nay, even as Valinor?
Annatar is offline  
Odgovori s citatom
Old 13.01.2021., 11:28   #878
Moriel, jel ceprkas jos uvijek po smartos-u? Kako ide?
Staromodan is offline  
Odgovori s citatom
Odgovor



Kreni na podforum




Sva vremena su GMT +2. Trenutno vrijeme je: 15:12.