• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af d3zz | 11.08.2010 16:42

at ændre en variable

Programmering
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??
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer6

# 1

15 år 6 måneder siden

Permalink

Indsendt af coe den 11. august 2010 kl. 17:02

Permalink

Du skal forsætte med at

Du skal forsætte med at beskytte din variabel ligesom du gør oppe i mkdir linien.

Det vil sige : cp *.jpg "$ALBUM"

/carsten
  • Log ind eller opret dig for at tilføje kommentarer

# 2

15 år 6 måneder siden

Permalink

Indsendt af freex den 11. august 2010 kl. 17:27

Permalink

Hvis jeg forstår

Hvis jeg forstår spørgsmålet rigtigt skal du bare replace " " med "\ ".
altså escape space.

det kan du gøre med sed:
ALBUM=`echo $ALBUM |sed 's/ /\ /g'`
  • Log ind eller opret dig for at tilføje kommentarer

# 3

15 år 6 måneder siden

Permalink

Indsendt af z4ndx den 11. august 2010 kl. 17:33

Permalink

Tror bare han mener at

Ingenting.. Mig der ikke er helt vågen :)
  • Log ind eller opret dig for at tilføje kommentarer

# 4

15 år 6 måneder siden

Permalink

Indsendt af d3zz den 12. august 2010 kl. 17:14

Permalink

freex du forstpd mit

freex du forstpd mit spørgsmål rigtigt. men hvad skal jeg så gøre ved mit script for det virker??
  • Log ind eller opret dig for at tilføje kommentarer

# 5

15 år 6 måneder siden

Permalink

Indsendt af divineant den 12. august 2010 kl. 21:09

Permalink

Her gør du det

Her gør du det rigtigt:

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/"
  • Log ind eller opret dig for at tilføje kommentarer

# 6

15 år 6 måneder siden

Permalink

Indsendt af freex den 12. august 2010 kl. 21:38

Permalink

yep "" om dine variabler vil

yep "" om dine variabler vil virke fint... sed versionen virker også fint.
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

  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

KDE Plasma 6.6 skrivebordsmiljø udgivet 0
youtube-tui: Nyd YouTube fra terminalen som en professionel 0
GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0
Linux i København 12.01.2026: Open source i det offentlige 0

Seneste aktivitet

BigLinux 5
Det engang så elskede PCLinuxOS er tilbage - og det er stadig en fantastisk Windows erstatning 1
rsync og filsystem 6
Mousam er en detaljeret desktop vejrapp til Linux 1
Hjælp til Handbrake - ingen dk-undertekster 1
luckyBackup 2
GIMP 30
Pinegrow på Debian 13 ? 4
Openmediavault 1
E-mail blues 9
Driver til min scanner? 5
Printer Epson ET-2865 problem 16
Sudo 7
Thunderbird filvedligeholdelse 2
Debian 13.3.0 8
Linux Mint 22.3 - hvornår opdatere? 10
Canon-printer: Jeg savner "Ink-Toner Level"-meddelelse 10
billede af nuværende installation 2
mapper 4
LinuxIn live 9

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !