Der Martin: bash: Richtiges Escaping

Beitrag lesen

Hallo miteinander,

ich kämpfe derzeit mit dem korrekten Escaping innerhalb eines bash-Scripts.

Zur Herleitung: Ich gebe folgendes am Shell-Prompt ein:

ffplay -f lavfi 'amovie=/data/mp3/ABBA/Kisses\ Of\ Fire.mp3, asplit [a][out1]; [a] showspectrum=size=1024x480:slide=scroll [out0]'

ffplay ist ein sehr schlanker Video/Audio-Player aus dem ffmpeg-Paket. Mit der genannten Anweisung, die ich in der ffmpeg-Dokumentation gefunden habe, spielt er die mp3-Datei ab und zeigt gleichzeitig ein Video-Fenster mit einem in Echtzeit durchlaufenden Spektraldiagramm. Eine nette Spielerei.

Nun wollte ich dieses unhandliche Kommando aber nicht jedesmal wieder eingeben, also habe ich das in ein Script namens ffaudio gesteckt und den Dateinamen durch $1 ersetzt:

# !/bin/bash

ffplay -f lavfi 'amovie="$1", asplit [a][out1]; [a] showspectrum=size=1024x480:slide=scroll [out0]'

Und jetzt falle ich auf die Schnauze, weil innerhalb der Quotes das Argument $1 nicht mehr expandiert wird. Wie escape ich hier richtig?

Einen schönen Tag noch
 Martin

--
"Hab ich vergessen" ist oft nur ein Euphemismus für "Hab ich noch nie verstanden".

akzeptierte Antworten