Ich verwende ein Skript namens conv-script
, das ich auf AskUbuntu gefunden habeHier. Es sieht aus wie das
#!/bin/sh
readarray -t files < wma-files.txt
for file in "${files[@]}"; do
out=${file%.wma}.mp3
probe=`avprobe -show_streams "$file" 2>/dev/null`
rate=`echo "$probe" | grep "^bit_rate" | sed "s:.*=\(.*\)[0-9][0-9][0-9][.].*:\1:" | head -1`
ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done
Ich bin gerannt sudo chmod +x ./conv-script
und dann versuche ich, es auszuführen mitsudo ./conv-script
Danach erhalte ich eine Fehlermeldungsudo: ./conv-script: command not found
Ich bin mir nicht sicher, was ich falsch mache, da ich die Datei im aktuellen Arbeitsverzeichnis sehe und sie als ausführbare Datei festgelegt habe. Ich dachte, es könnte daran liegen, dass die erste Zeile meines Skripts falsch ist, aber ich habe ein anderes Skript mit demselben Shebang und es wird einwandfrei ausgeführt. Wenn ich den Shebang im Original verwende, #!/usr/bin/env bash
bekomme ich dasselbe. Danke für die Hilfe
BEARBEITEN:
Ausgabe vonfile conv-script
conv-script: a /usr/bin/env bash script, ASCII text executable
Ausgabe vonstat conv-script
File: ‘conv-script’
Size: 325 Blocks: 64 IO Block: 32768 regular file
Device: 821h/2081d Inode: 82004 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ kalenpw) Gid: ( 1000/ kalenpw)
Access: 2016-05-17 16:40:43.000000000 -0600
Modify: 2016-05-17 14:33:31.000000000 -0600
Change: 2016-05-17 14:33:32.000000000 -0600
Birth: -
Antwort1
Stellen Sie zunächst sicher, dass Sie Folgendes haben ffmpeg
und libav-tools
installiert haben. Dies können Sie tun, indem Sie in das Terminal ( ctrl+ alt+ t) eingeben:
apt-cache policy ffmpeg libav-tools
Wenn beide installiert sind, sollte die Ausgabe etwa wie folgt aussehen:
ffmpeg:
Installed: 7:2.8.6-1ubuntu2
Candidate: 7:2.8.6-1ubuntu2
Version table:
*** 7:2.8.6-1ubuntu2 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
100 /var/lib/dpkg/status
libav-tools:
Installed: 7:2.8.6-1ubuntu2
Candidate: 7:2.8.6-1ubuntu2
Version table:
*** 7:2.8.6-1ubuntu2 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
100 /var/lib/dpkg/status
Wenn Sie in eine der Zeilen gelangen, die mit Installed:
einem Eintrag beginnen (none)
, installieren Sie das Paket mit sudo apt-get install <package-name>
.
Nun noch ein paar Korrekturen zum Skript selbst:
#!/bin/bash
cd "$1"
find . -type f | grep wma$ > wma-files.txt
readarray -t files < wma-files.txt
for file in "${files[@]}"; do
out=${file%.wma}.mp3
probe="$(avprobe -show_streams "$file" 2>/dev/null)"
rate="$(echo "$probe" | grep "^bit_rate" | sed "s:.*=\(.*\)[0-9][0-9][0-9][.].*:\1:" | head -1)"
ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done
Dieses kannst Du dann mit aufrufen ./script.sh /path-to-your-music
.