• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Variable auslesen und in Datei speichern klappt im Terminal aber nicht per Script?

Bozol

Zabergäurenette
Registriert
05.01.04
Beiträge
613
Hallo,

Code:
width=$(mediainfo "--Inform=Video;%Width%" //Volumes/Work/Scratch/Neuer\ Ordner/Die\ Abenteuer\ von\ Shark\ Boy\ und\ Lava\ Girl\ \(2005\).m4v); echo $width > /Volumes/Work/fred/Desktop/FilmeWidth.txt
erzeugt beim Aufruf im Terminal auf dem Desktop die Datei "FilmeWidth.txt" mit dem Wert (in diesem Fall 720) von $width.

Beim Versuch diesen Aufruf mit einem Vergleich des Wertes von $width in ein Script einzubauen passiert nichts. :-(
Code:
#!/bin/sh
width=$(mediainfo "--Inform=Video;%Width%" //Volumes/Work/Scratch/Neuer\ Ordner/Die\ Abenteuer\ von\ Shark\ Boy\ und\ Lava\ Girl\ \(2005\).m4v)
 
if 
$width = "720"
then 
echo $width > /Volumes/Work/fred/Desktop/FilmeWidth.txt
else 
fi
was mache ich (Terminal-Noob) falsch? :-!

Danke,

Fred
 
Was bedeutet, es passiert "nichts"? Keine Ausgabe oder Fehler?
Wenn du um deine if-Abfrage eine Klammer packst, läuft bei mir der Schnipsel zumindest ohne Error durch.
Code:
if [ $width == 720 ]
then 
echo $width 
fi

Falls garkeine Ausgabe erscheint, hast du mit echo mal den Wert vor dem Vergleich ausgegeben, um zu sehen, ob das zu dem Zeitpunkt noch stimmt?
 
if
$width = "720"
then ...
Du rufst ein Programm auf, dessen Name der Inhalt von $width ist. Diesem versuchst du als Argument den Rest der Zeile unterzujubeln.
Logischerweise gibt das zu 99,999999% einen Fehler weil ein solches Programm nicht gefunden wird, und die if-Schleife reagiert anhand dieses Rückgabewertes korrekt - nämlich gar nicht, wie bei jedem anderen "false" auch.
 
@cham
Danke, es klappt.
@Rastafari
darum schrieb ich auch "Terminal-Noob" ;-) Aber wieder was gelernt...