15. december

Aliaser med argumenter

Nogle gange kan det tnkes at du er interesseret i at lave et alias, hvor de argumenter du skriver efter aliaset ikke bare skal st efter den kommando aliaset peger p.

Hvis du bruger tcsh kan det klares ved at stte "\!*" ind p det sted i aliaset, hvor argumenterne skal bruges:

alias ro 'lynx "http://www.dsn.dk/cgi-bin/ordbog/ro96?M=1&P=`echo "\!*" | sed "//s//%E6/g" | sed "//s//%F8/g" | sed "//s//%E5/g"`"'
alias pospell-da '\pospell -n \!* -p aspell -- --lang=dansk check %f'

I bash kan man ikke direkte lave aliaser med argumenter, men inde fra en funktion kan man referere til argumenterne den blev kaldt med med "$*":

function ro () {
 data=`echo "$*" | sed "//s//%E6/g" | sed "//s//%F8/g" | sed "//s//%E5/g"`
 lynx "http://www.dsn.dk/cgi-bin/ordbog/ro96?M=1&P=$data"
}

function pospell-da () {
 \pospell -n $* -p aspell -- --lang=dansk check %f
}