at ændre en variable
hej linuxin
jeg er igang med at lave et script som kan overføre billeder til en mappe scriptet laver.
script:
#! /bin/bash
read -p "hvad skal albummet hede?" ALBUM
cd ..
cd Billeder
mkdir "$ALBUM"
gphoto2 --get-all-raw-data /home/boye/Billeder/
cp *.jpg $ALBUM/
rm *.jpg
det virker fint hvis ALBUM ikke har mellemrum i. men hvis ALBUM har mellemrum i skal jeg på en eller anden måde ændre variablen ved cp *.jpg $ALBUM/
jeg har prøvet med cp *.jpg ${ALBUM/ /\ }/
men det virker ikke... hvad skal jeg gøre??
jeg er igang med at lave et script som kan overføre billeder til en mappe scriptet laver.
script:
#! /bin/bash
read -p "hvad skal albummet hede?" ALBUM
cd ..
cd Billeder
mkdir "$ALBUM"
gphoto2 --get-all-raw-data /home/boye/Billeder/
cp *.jpg $ALBUM/
rm *.jpg
det virker fint hvis ALBUM ikke har mellemrum i. men hvis ALBUM har mellemrum i skal jeg på en eller anden måde ændre variablen ved cp *.jpg $ALBUM/
jeg har prøvet med cp *.jpg ${ALBUM/ /\ }/
men det virker ikke... hvad skal jeg gøre??
Kommentarer6
Du skal forsætte med at
Det vil sige :
cp *.jpg "$ALBUM"
/carsten
Hvis jeg forstår
altså escape space.
det kan du gøre med sed:
ALBUM=`echo $ALBUM |sed 's/ /\ /g'`
Tror bare han mener at
freex du forstpd mit
Her gør du det
mkdir "$ALBUM"
Og her gør du det forkert:
cp *.jpg $ALBUM/
Der er ikke nogen grund til at begynde at tilføje escape karakterer med sed når du blot kan beskytte variablen med gåseøjne som #1 også siger.
cp *.jpg "$ALBUM/"
yep "" om dine variabler vil
du kan jo eventuelt prøve at køre disse fra en terminal.
Virker
mkdir "test test"
Virker
mkdir test\ test
Virker ikke
mkdir test test
Eks. til din kode.
#! /bin/bash
read -p "hvad skal albummet hede?" ALBUM
ALBUM=`echo $ALBUM |sed 's/ /\ /g'`
cd ..
cd Billeder
mkdir "$ALBUM"
gphoto2 --get-all-raw-data /home/boye/Billeder/
cp *.jpg $ALBUM/
rm *.jpg