[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] bash-script og parametre med wildcard



Jens Bang <sslug@sslug> writes:

> Jeg er i gang med at skrive et bash-script, hvor jeg kalder et program (jhead) 
> med en af parametrene der gives til scriptet. Mit problem er at denne 
> parameter kan være af typen *.jpg, og i det tilfælde har jeg brug for at det 
> rent faktisk er strengen '*.jpg' (altså uden plingerne), der bruges som 
> parameter til jhead. Men det der når frem til jhead er den første fil der 
> passer på *.jpg.

Det er shellen der kalder dit script der udfolder *.jpg. Du kan ikke i
scriptet se om brugeren har kaldt scriptet med argumentet '*.jpg'
eller om han har kaldt det med 'img001.jpg img002.jpg img003.jpg' som
argumenter.

> Et simpelt eksempel (gemt som test.sh):
>
> 	#!/bin/bash
> 	jhead $1

Men du kan bruge alle argumenterne ved at bruge "$@" (*med*
dobbelt-plinger):

        #!/bin/sh
        jhead "$*"

> Viser det sig, at kaldet
> 	$./test.sh *.jpg
> Giver dette output:
> 	IMG_0006.jpg
> Det er navnet på den første JPEG-fil, men det jeg ville have er dette output:
> 	*.jpg

Det kan du som sagt ikke uden at skulle have brugeren af dit script
til at escape stjernen. Altså noget ala:

  $ ./test.sh \*.jpg

eller

  $ ./test.sh '*.jpg'

Men som sagt kan du med "$*" i dit script få fat på alle di navne som
'*.jpg' folder ud til. Men husk dobbelt-plingerne omkring, ellers går
det galt hvis du har argumenter med mellemrumstegn i.

-- 
 Peter Makholm     |    I congratulate you. Happy goldfish bowl to you, to
 sslug@sslug |      me, to everyone, and may each of you fry in hell
 http://hacking.dk |                                               forever
                   |                                      -- The Dead Past


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2006-04-01, 02:01 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *