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

Østrigsk ministerium smider Microsoft ud til fordel for Nextcloud 0
Internettet er ved at dø. Vi kan stadig stoppe det 0
Tid til at lære noget igen 0
TPM 2 0
BigLinux 0

Seneste aktivitet

Brug carburetor til at forblive usynlig online 8
Sådan konfigurerer du flatpaks' flathub til verified only 9
Plasma tapet-skifter 3
How to upgrade to LMDE 7 4
Virksomheder og enheder der kører på Linux 11
NordVPN har udgivet kildekoden til sin grafiske brugergrænseflade 2
Flere og flere bruger Brave browseren 1
LibreOffice og Collabora: Hvorfor er de ikke i skolerne i stedet for Word og Google Docs? 11
Firewall igen 5
Værdien ved open source 2
Sailfish på android telefon 1
Ladybird Browser 7
Satiriske ordspil 3
Kan ikke boote på installation 26
Tilføj signatur til Evolution mail 2
LUKS kryptering - Er der andre der bruger det 15
Dansk distro til software udviklere 2
Linux Debian 5
Brother printer installation 2
Den er go 6

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !