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