Variable mit 'tr' ändern

I

Ivi

Jungspund
Guten Morgen,

ich versuche gerade mit 'tr' die Variablen eines Shell-Skriptes abzuändern. Angenommen ich habe das hier:
Code:
for i in /ordner/pfad*.mp3 ; do
v1=$(basename "$i" .mp3)
v2=$v1
echo $v1 $v2
done

Hier erhalte ich als Ausgabe 2x den Dateinamen ohne Pfade hintereinander. Angenommen ich setze hinter die 2. Variable 'tr' und lasse alle 'A' durch 'X' ersetzen:

Code:
for i in /ordner/pfad*.mp3 ; do
v1=$(basename "$i" .mp3)
v2=$v1 | tr A X
echo $v1 $v2
done

Dann wird die 2. Variable in der Ausgabe komplett ignoriert. Direkt im Terminal z. B. mit

Code:
echo GEIL | tr E X

geht das. Was mach ich bei der Variablen falsch?
 
Was funktionieren sollte:
Code:
v2=$(echo $v1 | tr A X)

Dein Versuch gibt nur den Output der Zuweisung "v2=$v1" (also nichts) über die Pipe zu tr - damit kannst du auch keinen Output bekommen. Ausserdem läuft aufgrund der Pipe die Zuweisung auch in einem Child-Prozess, so dass sie nach dieser Zeile (also in der aktuellen Shell) nicht wirksam wird - v2 ist also leer.
 

Ähnliche Themen

Tabelle in Array "konvertieren"

Verschlüsseltes Backup-Script mit rsync

gnu parallel Zeichen lesen und Wert berechnen

HandbrakeCLI Shell Skript

Summe von Zahlen in einer Zeilen bilden

Zurück
Oben