Я использую ЛАМЕ, чтобы преобразовать .wav файлы в .mp3 и хотеть знать, как я могу добавить передаваемые аргументы в командной строке для вывода имени .mp3?

Моя ХРОМАЯ команда в настоящее время:

lame -b 128 -m j -h -V 1 -B 256 -F *.wav mymp3.mp3

Скажите мне измененную команду [или сценарий x.sh] так, чтобы мой вывод mp3 а именно, mymp3.mp3 изменения в чем-то как mymp3 [ -b 128 -m j -h -V 1 -B 256 -F ].mp3

Я не прошу lame -b 128 -m j -h -V 1 -B 256 -F *.wav mymp3 [ -b 128 -m j -h -V 1 -B 256 -F ].mp3 Я уже знаю, что это будет работать над ними набор опций, но для другого набора аргументов, что будет команда [или сценарий x.sh] быть?

Моя ХРОМАЯ версия произвела give's:

ХРОМАЯ версия 3.99.5 на 64 бита (http://lame.sf.net)' и я использую Ubuntu 16.04

У меня есть идея, что, возможно, мы можем выследить последнюю строку истории с: history | tail -n 1 и добавьте его так или иначе в mp3 файл, созданный в той ХРОМОЙ команде.

РЕДАКТИРОВАНИЕ:

Предположим, что я использую, z.sh some_set_of_random_options x.wav Скажите мне z.sh так, чтобы выходной файл был x_some_set_of_random_options.mp3 Например, я использовал:

z.sh -b 128 x.wav выходной файл: x_-b 128.mp3

z.sh -b 192 x.wav выходной файл: x_-b 192.mp3

z.sh -B 256 x.wav выходной файл: x_-B 256.mp3

РЕДАКТИРОВАНИЕ 2:

Существует способ использовать несколько аргументов и добавить их к выходному файлу, он идет что-то как:

./x.sh 128 j x 256 и в x.sh использовать $0 для первой замены аргумента, $1, $2 и $3 это - то, что я собираюсь лично сделать для своей задачи.

ИЛИ

Перейдите по этой ссылке: https://linux.die.net/man/1/bash и учатся использовать $* или $@ чтобы замена нескольких-аргументов упростила выше процесса. Ответ зеленой галочки имеет пример с помощью этого метода.

2
задан 10 October 2017 в 10:46

1 ответ

Исходная версия

Я предлагаю, чтобы Вы использовали сценарий оболочки.

  • Используйте, например, имя wav2mp3

  • Сохраните командную строку и всю другую релевантную информацию в сценарии оболочки.

  • Я предлагаю, чтобы Вы избежали символов с особым значением (пространство [ и ]) в имени файла замените _

    #!/bin/bash
    
    options="-b 128 -m j -h -V 1 -B 256 -F"
    OptInName=${options//\ /_}
    
    # only testing here, so making it an echo command line
    
    echo lame "$options" *.wav "mymp3_$OptInName.mp3"
    
  • Сделайте это исполняемым файлом

    chmod ugo+x wav2mp3
    
  • Выполните его (это 'только' отзывается эхом здесь, показывая то, на что реальная вещь была бы похожа),

    $ ./wav2mp3
    lame -b 128 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_128_-m_j_-h_-V_1_-B_256_-F.mp3
    

Версия с параметром

Если b-значение является единственной опцией, Вы хотите измениться, у Вас может быть это как единственный параметр при вызове wav2mp3.

#!/bin/bash

if [ $# -ne 1 ]
then
 echo "Usage:    $0 <b-value>"
 echo "Example:  $0 128"
else
 options="-b $1 -m j -h -V 1 -B 256 -F"
 OptInName=${options//\ /_}

# only testing here, so making it an echo command line

 echo lame "$options" *.wav "mymp3_$OptInName.mp3"
fi

Примеры:

$ ./wav2mp3 128
lame -b 128 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_128_-m_j_-h_-V_1_-B_256_-F.mp3
$ ./wav2mp3 256
lame -b 256 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_256_-m_j_-h_-V_1_-B_256_-F.mp3

Версия с произвольным числом параметров

#!/bin/bash

if [ $# -eq 0 ]
then
 echo "Usage:    $0 <parameters>"
 echo "Example:  $0 -b 192 -m j -h -V 1 -B 256 -F"
else
 options="$*"
 OptInName=${options//\ /_}

# only testing here, so making it an echo command line

# When using parameters without white space (and this is the case here),
# you should use $* and when calling the program (in this case 'lame')
# I think you should *not* use quotes (") in order to get them separated.
# So $options, not "$options" in the line below.

 echo lame $options *.wav "mymp3_$OptInName.mp3"
fi

Пример:

$ ./wav2mp3star -b 192 -m j -h -V 1 -B 256 -F
lame -b 192 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_192_-m_j_-h_-V_1_-B_256_-F.mp3
2
ответ дан 2 December 2019 в 03:36

Другие вопросы по тегам:

Похожие вопросы: