How do I best pass arguments to a Perl one-liner? -
i have file, somefile, this:
$cat somefile hdisk1 active hdisk2 active i use shell script check:
$cat a.sh #!/usr/bin/ksh d in 1 2 grep -q "hdisk$d" somefile && echo "$d : ok" done i trying convert perl:
$cat b.sh #!/usr/bin/ksh export d d in 1 2 cat somefile | perl -lane 'begin{$d=$env{'d'};} print "$d: ok" if /hdisk$d\s+/' done i export variable d in shell script , value using %env in perl. there better way of passing value perl one-liner?
you can enable rudimentary command line argument "s" switch. variable gets defined each argument starting dash. -- tells command line arguments start.
for d in 1 2 ; cat somefile | perl -slane ' print "$someparameter: ok" if /hdisk$someparameter\s+/' -- -someparameter=$d; done see: perlrun
Comments
Post a Comment