Mellanslag i vaiabler...

Johan Kuuse kuuse at redantigua.com
Wed Jun 20 12:39:02 CEST 2007


Konstigt.
Jag försöker rekonstruera ditt fel, men lyckas inte:

$ mkdir -p 'test1/profile/Application Data'
$ touch test1/profile/Application\ Data/prefs.js

bus.sh (notera att jag bytt ut /home mot .)
-------------------------------------------
#!/bin/sh
file_list=`find . -type f -name prefs.js`
echo $file_list
-------------------------------------------

$ chmod 755 bus.sh
$ ./bus.sh
./test1/profile/Application Data/prefs.js


Men jag tycker också att Rasmus' lösning med xargs låter vettigare.

MVH,
Johan Kuuse



>>>>>> "AT" == Anders Troback <freebsd at troback.com> writes:
>
>  AT> Mitt problem är att filen ligger i mappar som har "mellanslag" i
>  AT> sökvägen vilket inte blir så bra i mitt script!
>
>  AT> Jag försöker med:
>
>  AT> file_list=`find /home -type f -name prefs.js`
>  AT> echo $file_list
>
> Det skulle nog räcka med att sätta vanliga dubbelfnutta utanför
> bakåtfnuttarna.  Men då har du alla machande filnamn separerade med
> mellanslag i den variabeln, och hur vet du då hur stor bit av
> variabeln som är ett filnamn?
>
> Måste du ha filnamnen i en variabel?  Jag skulle göra:
>
> find /home -type f -name prefs.js -print0 | xargs -0 dostuff
>
> ... där dostuff är ett kommando som tar (ett antal) filnamn som
> parametrar.  Då blir det rätt.
>
> --
> Rasmus Kaj <rasmus at kaj.se> -- http://www.stacken.kth.se/~kaj/
> Yes, bugger all that. Let's curse somebody. -Nanny Ogg (Terry Pratchett)
> _________________________________________________
> BSD Users Sweden -- BUS at stacken.kth.se
> https://lists.stacken.kth.se/mailman/listinfo/bus
>



More information about the BUS mailing list