Variablen GROSS und klein -schreibung

Hans-Ulrich

Hans-Ulrich

Aktives Mitglied
Thread Starter
Dabei seit
07.09.2005
Beiträge
564
Reaktionspunkte
56
Hallo,
als totaler Neuling im Shellscript
Wie kann ich einer Variablen den Wert:
ext1=jpg, JPG
zuweisen ? Ich könnte das Script zweimal mit verschiedenen Variablen laufen lassen: ext1=jpg und ext1=JPG .
Geht das einfacher ?
 
Welche Shell?
Kannst du mal mehr Kontext geben?
Scheint so als willst du was mit jpg Dateien machen.
Bei manchen Befehlen kannst du case insensitive angeben, da ist dann egal, ob jpg oder JPG.
 
Du brauchst ein Array:

Code:
#!/bin/bash
ARRAY=('jpg' 'JPG') 

for foo in "${ARRAY[@]}"; do
   echo "$foo"
done
 
Hallo,
vielen Dank ! Da muß ich doch etwas weiter ausholen:
Ich fotografiere im Format RAW (DNG). Beim Entwickeln der Bilder gibt es ein Verzeichnis RAW's und ein Verzeichnis JPG
Alle RAW Dateien werden nicht entwickelt und manchmal werden auch entwickelte JPG Dateien noch gelöscht.
Das Script, was nicht von mir stammt, sortiert mir die Dateien aus, die kein 'Gegenstück' haben:
***********
# RAW und JPG filtern
# leftdelete
# delete files in dir1 if basename counterpart is missing in dir2
# dir1/file.ext1 <==> dir2/file.ext2
# (c) Olivetti 2017
#
#!/bin/bash
set -vux

ext1=jpg
ext2=DNG

dir1="/Users/hans-ulrich/Pictures/Entwickeln/JPG"
dir2="/Users/hans-ulrich/Pictures/Entwickeln/RAWs"
dir3="/Users/hans-ulrich/Pictures/Entwickeln/Aussortiert"

for f in ${dir1}/*.${ext1}
do
file="${f%.${ext1}}"
file="${file##*/}"
[[ ! -f "${dir2}/${file}.${ext2}" ]]&& mv "${f}" ${dir3}
done

for f in ${dir2}/*.${ext2}
do
file="${f%.${ext2}}"
file="${file##*/}"
[[ ! -f "${dir1}/${file}.${ext1}" ]]&& mv "${f}" ${dir3}
done
***********
So habe ich es mir 'zusammengestrickt'
Und wenn die Experten hier schon helfen, ich würde mich freuen, wenn das Terminalfenster nicht aufspringen
würde, auch nicht kurz, d.h. es 'läuft' total im Hintergrund. :)
Für jede Hilfe dankbar !
 
Mit
do shell script
Über Applescript als App speichern.

Versuch mal
shopt -s nocasematch;
Damit die BASH die Vergleiche nicht mehr case sensitive macht.
Olivetti ist doch hier aus dem Forum.
 
Zurück
Oben Unten