• 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 5 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 5 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 5 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 5 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 5 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 5 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

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
Dansk distro Omarchy 0
KDE overgår indsamlingsmålet for 2025 med rekordstor støtte fra lokalsamfundet 0

Seneste aktivitet

BigLinux 1
E-mail blues 6
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
Linux Debian på ekstern HD 4
usb disk *LØST* 2
Pacman kunne erstattes af en anden Rust baseret mulighed 1
Epson skanner software 8
Debian 1
Printer Epson ET-2865 problem 8
Winboat 4
Nu kan man skrive private beskeder 14
Mint på imac 2009 34
Firefox AI 7
Kunstig inteligens 6
Kopiering til min Samsung telefon 9
Installation af programmer 21

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !