• 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

14 år 10 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

14 år 10 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

14 år 10 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

14 år 10 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

14 år 10 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

14 år 10 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

Open source events i danmark? 0
llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0

Seneste aktivitet

Virtuel maskine? 3
"Intet realistisk alternativ" - mig i r*ven 16
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
En snak om Linux-kompatibel software 7
Nulstilling af adgangskode 6
PCLinuxOS 27
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4
Linuxin er nu migreret til Drupal 11 13

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !