SH a funkcie
Miroslav Lachman
000.fbsd at quip.cz
Tue Feb 26 16:52:18 CET 2019
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
More information about the Users-l
mailing list