[linux] Re: Parameter met een spatie gebruiken in een script
Wybo Dekker
wybo op servalys.nl
Ma Sep 10 18:02:41 CEST 2007
Cecil Westerhof wrote:
> Ik heb het volgende script:
>
> ##########
> #!/usr/bin/env bash
>
> if [[ ${#} -ne 1 ]] ; then
> echo "gebuik: ${0} <backup_disk>"
> exit -1
> fi
>
> DIR=${1}'/'`date +%F`
> echo "De copie wordt neergezet op ${DIR}"
> mkdir -p ${DIR}
> cp -pr /vmware/monica/* ${DIR}
> ##########
>
> Dit roep ik aan met:
> ./backup '/media/WD\ Passport/'
je moet, waar nodig, filenamen in je script tussen "" zetten:
#!/usr/bin/env bash
if [ $# -ne 1 ] ; then
echo gebruik: `basename $0` "<backup_disk>"
exit -1
fi
DIR="$1/`date +%F`"
echo "De copie wordt neergezet op $DIR"
mkdir -p "$DIR"
cp -pr /tmp/* "$DIR"
en in de call hetzij quotes gebruiken, dan wel \. dus
./backup '/media/WD Passport/'
of
./backup /media/WD\ Passport/
niet allebei
> Helaas zit er een spatie in de naam. :-{
>
> En dit geeft:
> De copie wordt neergezet op /media/WD\ Passport//2007-09-10
> mkdir: kan map `/media/WD\\ Passport' niet aanmaken: Toegang
> geweigerd
>
> Als ik handmatig het commando uitvoer, wordt de directory wel
> aangemaakt. Wat doe ik hier fout?
>
>
>
--
Wybo
More information about the Linux
mailing list