Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Dateinamen an bash Script übergeben ohne kompletten Pfad

  1. #1
    mit Glied Avatar von City][Sepp
    Registriert seit
    Apr 2003
    Ort
    München
    Beiträge
    831

    Dateinamen an bash Script übergeben ohne kompletten Pfad

    Hi,

    ich hab mir da ein kleines Script gebastelt, welches zunächst überprüft, wie die Bitrate eines MP3s ist. Wenn diese kleiner = X ist, wird die Datei einfach in ein festgelegtes Verzeichnis kopiert. Wenn die Bitrate jedoch grösser X ist, wird das MP3 an lame weitergereicht und dann auf 128KBit recodiert. Brauch ich, damit mein USB MP3 Stick mit 128 MB auch ausreichend Platz bietet und weil er Probleme mit MP3s > 196KBit hat. Naja.. das funktioniert auch soweit ganz gut.
    Dem Script gibt man den Dateinamen mit und im Script wird dieser dann eben mit der Variable $1 weiterverarbeitet.
    Das sieht dann in etwa so aus:
    lame -b 128 "$1" /mnt/usbstick/"$1"

    So... nun zu meinem Problem:

    Wenn ich also in meinem MP3 Verzeichnis bin und dort das Script starte und den Dateinamen ohne Pfadangabe mitgebe, dann funktioniert das auch wunderbar. Wenn ich jedoch z.B. in meinem Home bin und das Script ausführe und den ganzen Pfad zum MP3 mit angebe, dann ist $1 natürlich auch mit dem kompletten Pfad belegt. Und dann versucht lame das eben folgendermassen abzuspeichern:
    /mnt/usbstick//pfad/zum/mp3/lied.mp3
    Und das is natürlich Blödsinn und geht auch nicht. Wie kann ich denn nun bewerkstelligen, dass nur der Dateiname verwendet wird? Ich denke mal, mir da was mit awk oder so zusammenzuwurschteln düfte etwas überzogen sein (im Sinne von: "verwende nur, was nach dem letzten / kommt") da es ja bestimmt eine einfachere Möglichkeit gibt.

    Wer weiss Rat?
    Netbook: Eee PC 901 -=- Lubuntu 10.04
    Server: Sempron 1.8GHz -=- Fedora 10
    HTPC: Athlon X2 4600+ -=- Windows 7 64Bit/MediaPortal

  2. #2
    komplett "ausgebleicht" Avatar von Der Gestreifte
    Registriert seit
    May 2003
    Ort
    904**
    Beiträge
    3.247
    DATEI=`basename /pfad/zur/datei`

  3. #3
    mit Glied Avatar von City][Sepp
    Registriert seit
    Apr 2003
    Ort
    München
    Beiträge
    831
    Hm... Sorry.. versteh aber grad net, was das genau zu bedeuten hat
    Netbook: Eee PC 901 -=- Lubuntu 10.04
    Server: Sempron 1.8GHz -=- Fedora 10
    HTPC: Athlon X2 4600+ -=- Windows 7 64Bit/MediaPortal

  4. #4
    komplett "ausgebleicht" Avatar von Der Gestreifte
    Registriert seit
    May 2003
    Ort
    904**
    Beiträge
    3.247
    Probier's doch einfach aus:
    Code:
    maddin@captin:tmp$ basename --help
    Benutzung: basename NAME [SUFFIX]
      oder:    basename OPTION
    Gib NAMEN ohne führende Verzeichnisse aus.
    maddin@captin:tmp$ pwd
    /home/maddin/tmp
    maddin@captin:tmp$ touch muell
    maddin@captin:tmp$ DATEI=`basename /home/maddin/tmp/muell`
    maddin@captin:tmp$ echo $DATEI
    muell

  5. #5
    reitet auf GNUs Avatar von core
    Registriert seit
    Dec 2003
    Ort
    Berlin
    Beiträge
    895
    Zitat Zitat von City][Sepp
    Dem Script gibt man den Dateinamen mit und im Script wird dieser dann eben mit der Variable $1 weiterverarbeitet.
    Das sieht dann in etwa so aus:
    lame -b 128 "$1" /mnt/usbstick/"$1"
    (...)
    Hm... Sorry.. versteh aber grad net, was das genau zu bedeuten hat
    Du fügst in dein Script die Zeile
    DATEI=`basename $1`
    ein.
    Anschliessend verwendest du anstelle $1 nur noch $DATEI .. "basename" entfernt den Pfad in $1.
    -> man basename
    When I sat down to read your post a tear dropped out of my eye, then i realized I sat on a joystick.

  6. #6
    mit Glied Avatar von City][Sepp
    Registriert seit
    Apr 2003
    Ort
    München
    Beiträge
    831
    AH! Ok.. Sorry... Konnte da leider noch nix ausprobieren, weil ich in der Arbeit bin und hier nur ne NT4.0 Kiste stehen hab...

    Vielen Dank! Ich denke, das sollte mir helfen
    Netbook: Eee PC 901 -=- Lubuntu 10.04
    Server: Sempron 1.8GHz -=- Fedora 10
    HTPC: Athlon X2 4600+ -=- Windows 7 64Bit/MediaPortal

Ähnliche Themen

  1. mysql client im bash script
    Von mork im Forum Linux Allgemein
    Antworten: 1
    Letzter Beitrag: 07.02.03, 09:45
  2. THPS3 Absturz direkt nach dem Start
    Von 50i im Forum Emulatoren für Spiele
    Antworten: 0
    Letzter Beitrag: 23.01.03, 17:26
  3. problem mit echo bei bash script
    Von avuton im Forum Anwendungen Allgemein, Software
    Antworten: 4
    Letzter Beitrag: 09.11.02, 17:32
  4. Bash Script lässt sich nicht ausführen?!?!
    Von Blackice im Forum Linux Allgemein
    Antworten: 4
    Letzter Beitrag: 14.09.02, 17:04
  5. Bei SuSE7.3 geht das Routen nicht (ohne Firewall)
    Von ortega im Forum Router und Netzaufbau
    Antworten: 10
    Letzter Beitrag: 12.02.02, 00:51

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •