Peter Rosa wrote on 2019/02/26 16:36:
Zdravim vsetkych,

este raz sa ospravedlnujem za predchadzajuci email, uz som zufal par tyzdnov. Len vcera som doriesil reverzne DNS, tak som to musel odskusat...

Ale k mojej otazke - pochopil som spravne predavanie parametrov funkciam?

Mam funkciu, ktora nacita aktualnu sietovu masku a vypise ju v citatelnom formate:

#!/bin/sh
get_mask() {
   iface=$1
   hm=`ifconfig $iface | grep 'inet' | cut -d' ' -f4`
   hm=${hm:2:10}
   hex2cidr `echo $hm`
}
hex2cidr() {
   hex=$1
   h1=${hex%????}
   h2=${hex#????}
   printf "%d.%d.%d.%d\n" 0x${h1%??} 0x${h1#??} 0x${h2%??} 0x${h2#??}
}

Funkciu volam v skripte takto:
iif='em1'
get_ip `echo $iif`

Naozaj sa funkcie volaju takto - cez subshell...? Nic lepsie som nevymyslel a Gogol tiez nie je velmi napomocny.

Trosku me mate, ze definujes funkci get_mask a volas funkci get_ip, kterou tam nevidim :)

Tohle je podle me zbytecny:
   get_ip `echo $iif`


Tenhle priklad ti to snad vysvetli:

> cat test.sh
#!/bin/sh

myprint() {
        date "+%F %T: $1"
}

myprint "prvni"

var="druha"

myprint $var



> sh test.sh
2019-02-26 16:49:30: prvni
2019-02-26 16:49:30: druha

Zkratka za jmeno funkce uvedes promennou, nebo textovy retezec a funkce ho vezme jako pozicni parametr. Echo a backtick operator je tam zbytecny.

Mirek
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem