Аудиоплеер командной строки, который сразу выходит после файла, законченного, воспроизводя?

IFS=$(echo -en "\n\b")

Так как Вы принимаете оболочку с echo -e, и Вы имеете, избивают Вашу строку хижины так или иначе, можно использовать IFS=$'\n\b'. Создание клавиши Backspace разделитель является довольно странным. Вам не нужно IFS поскольку, что Вы делаете так или иначе.

OLDIFS=$IFS

IFS=$OLDIFS

Обратите внимание, что это восстанавливает старое значение IFS только если IFS был первоначально установлен. Если IFS был первоначально сброшен, это устанавливает IFS к пустой строке, которая полностью отличается. В ksh, ударе или zsh, если необходимо установить IFS временно, можно написать код в функции и сделать IFS локальный для этой функции. В других оболочках необходимо быть осторожны относительно случая сброса.

`find /mnt/library/Libra/Libra/Ashfords -name "*.pdf"`

Никогда не используйте замену команды относительно вывода find.

  • Это разделяет вывод в символах в $IFS. Если Вы устанавливаете IFS к новой строке затем это разделяет вывод в новых строках, но Вы все еще не можете обработать имена файлов, содержащие новые строки.
  • Не только результат замены команды, разделенной на слова, но затем каждое слово используется в качестве шаблона шарика. Если Вы названные файлы A[12].pdf, A1.pdf и A2.pdf, Вы закончите с A1.pdf A2.pdf A1.pdf A2.pdf. Можно выключить globbing с set -f (и назад на с set +f), но здесь (как большая часть времени) правильный путь не состоит в том, чтобы использовать замену команды.

Используйте -exec аргумент find (или если Ваша система имеет -print0, можно использовать find … -print0 | xargs -0 … вместо этого; это только полезно для действия на несколько файлов сразу при необходимости в мобильности к древним системам Linux или существующим системам OpenBSD, которые имеют -print0 но нет -exec … {} +).

ORIGTS=`stat -c "%Y" $f`
# [transform $f]
touch -t $ORIGTS $f

Обратите внимание пропавших без вести двойных кавычек вокруг $f (они не необходимы, если это результаты разделения, и Вы не изменились IFS с тех пор и globbing выключен, но действительно, всегда помещает двойные кавычки, если Вы не знаете, почему Вы не можете оставить их на).

Это неуклюже и непортативно (stat не существует во всех системах, и его аргументы отличаются через различные системы, где это существует). touch имеет портативную опцию установить файл на метку времени другого файла: touch -r REFERENCE_FILE FILE. Я рекомендовал бы один из двух подходов вместо этого:

  • Если Вы можете, сначала преобразовать исходный файл в новый файл, затем звонить touch -r назначать дату нового файла и наконец перемещать новый файл в место. Лучше удостовериться, что вывод прекрасен, прежде чем что-либо произойдет с входом; иначе, если преобразование будет прервано по какой-либо причине (например, сбой питания), то Вы потеряете данные.
  • Если преобразование является черным квадратом, что Вы не имеете никакого контроля, можно использовать touch -r дважды: однажды для сохранения даты исходного файла на пустом временном файле (который будет автоматически создан), с другой стороны после преобразования для восстановления даты с помощью временного файла.

Таким образом:

find /mnt/library/Libra/Libra/Ashfords -name '*.pdf' \
     -exec sh -c 'transform "$0" to "$0.tmp" && touch -r "$0" "$0.tmp" && mv -f "$0.tmp" "$0"' {} \;
6
13.04.2017, 15:36
3 ответа

попробуйте это за ffplay:

ffplay -autoexit -nodisp -loglevel panic /usr/share/sounds/speech-dispatcher/test.wav 
6
27.01.2020, 20:23
  • 1
    Спасибо за комментарий @narco, +1 для усилия; однако, даже эта команда запускает visualizer окно - и сохраняет его зависающий в течение секунды, два или больше, прежде, чем выйти - так, та же проблема как в OP (и дополнительно, с окном). большое спасибо –  sdaau 11.05.2013, 14:13

Я использую:

cvlc --no-one-instance --volume 150 <soundfile>

играть короткие звуки (<1 секунда) как notifiers для операций программы.

--no-one-instance удостоверяется, что это проигрывание не становится запланированным после чего-то, что могло бы работать в моем 'нормальном' vlc (как музыка) и которое является установкой, чтобы иметь единственный экземпляр и для которых дополнительных вызовов (командная строка, дважды щелкая), добавляют файлы к плей-листу.

4
27.01.2020, 20:23
  • 1
    за это, @Anthon - сначала, эта команда полностью перестала работать для меня; но это было то, потому что я не инициализировал аудиоустройство для vlc (1.1.9) Предпочтения этой настольной среды. После того как я установил это, cvlc мог играть - но это сохранило цикличное выполнение звуком, который является установкой Playlist в Предпочтениях. Однажды "Повторяют, что все" были выключены, затем это начало играть - но кажется, что это имеет проблему с .wav файл использовал выше, хотя никакие проблемы с .ogg. Наконец, --no-one-instance кажется, повышает как процесс, но по-видимому для меня это было более важно... –  sdaau 11.05.2013, 14:17
  • 2
    Повторение выключено в моем 'нормальном' vlc также. Будучи ленивым, когда мне было нужно это, я просто искал правильную комбинацию параметров командной строки, которые заставили ее работать на меня, не на все параметры командной строки, которые заставили бы ее работать с каждой мыслимой установкой vlc ;-) –  Anthon 11.05.2013, 14:20
  • 3
    ... для определения --play-and-exit; таким образом, наконец, cvlc -q --play-and-exit /usr/share/sounds/ubuntu/stereo/service-logout.ogg действительно выходит немедленно - но любые звуки короче, чем секунда, кажется, ненадежно воспроизводится. Так или иначе я хотел бы знать, где это задерживается, прибывают из, таким образом, я сохраню этот вопрос открытым некоторое время.Удачи! –  sdaau 11.05.2013, 14:21
  • 4
    PS: Спасибо за разъяснение --no-one-instance (не был тем, что я ожидал :)) –  sdaau 11.05.2013, 14:22
  • 5
    у меня были они, задерживается на audioplay проблемах с VLC в прошлом также, но это, должно быть, было с Ubuntu 12.04. Я не уверен, что заставило их уйти, но это, возможно, просто было обновление пакета, поскольку я не помню исследовать его. Я не уверен, превратило ли такое обновление его в 11,04. Если бы у Вас есть шанс, я рекомендую загрузить более свежую версию Ubuntu от DVD/CD и видеть, была ли у Вас все еще проблема. –  Anthon 11.05.2013, 14:42

SoX работает над Ubuntu (во вселенной человечности repo), и был установлен на живом диске XFCE 16 Linux Mint. Может играть файлы в терминале, никаких новых окнах или чем-либо и выходах сразу после с:

игра/this/file

Это называет себя "SoX - Звуковой обмен, швейцарский нож аудио управления"... "особенно подходящего для создания быстрых, простых редактирований и к пакетной обработке", и, как предполагается, может сделать набор материала, эффектов, объединить несколько исходных данных, записать в выходные файлы. По-видимому, это было вокруг с тех пор 96 согласно журналу изменений.

Ответ на старый вопрос, который я знаю, но я просто искал, как ответить на точную проблему (звуковой сценарий уведомления для новой почты) и работы носков отлично, еще лучше, чем vlc/cvlc (это заняло больше времени и звучало немного отличающимся небольшим щелчком по концу?).

2
27.01.2020, 20:23

Теги

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