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"' {} \;
попробуйте это за ffplay
:
ffplay -autoexit -nodisp -loglevel panic /usr/share/sounds/speech-dispatcher/test.wav
Я использую:
cvlc --no-one-instance --volume 150 <soundfile>
играть короткие звуки (<1 секунда) как notifiers для операций программы.
--no-one-instance
удостоверяется, что это проигрывание не становится запланированным после чего-то, что могло бы работать в моем 'нормальном' vlc (как музыка) и которое является установкой, чтобы иметь единственный экземпляр и для которых дополнительных вызовов (командная строка, дважды щелкая), добавляют файлы к плей-листу.
vlc
(1.1.9) Предпочтения этой настольной среды. После того как я установил это, cvlc
мог играть - но это сохранило цикличное выполнение звуком, который является установкой Playlist в Предпочтениях. Однажды "Повторяют, что все" были выключены, затем это начало играть - но кажется, что это имеет проблему с .wav
файл использовал выше, хотя никакие проблемы с .ogg
. Наконец, --no-one-instance
кажется, повышает как процесс, но по-видимому для меня это было более важно...
– sdaau
11.05.2013, 14:17
--play-and-exit
; таким образом, наконец, cvlc -q --play-and-exit /usr/share/sounds/ubuntu/stereo/service-logout.ogg
действительно выходит немедленно - но любые звуки короче, чем секунда, кажется, ненадежно воспроизводится. Так или иначе я хотел бы знать, где это задерживается, прибывают из, таким образом, я сохраню этот вопрос открытым некоторое время.Удачи!
– sdaau
11.05.2013, 14:21
--no-one-instance
(не был тем, что я ожидал :)
)
– sdaau
11.05.2013, 14:22
SoX работает над Ubuntu (во вселенной человечности repo), и был установлен на живом диске XFCE 16 Linux Mint. Может играть файлы в терминале, никаких новых окнах или чем-либо и выходах сразу после с:
игра/this/file
Это называет себя "SoX - Звуковой обмен, швейцарский нож аудио управления"... "особенно подходящего для создания быстрых, простых редактирований и к пакетной обработке", и, как предполагается, может сделать набор материала, эффектов, объединить несколько исходных данных, записать в выходные файлы. По-видимому, это было вокруг с тех пор 96 согласно журналу изменений.
Ответ на старый вопрос, который я знаю, но я просто искал, как ответить на точную проблему (звуковой сценарий уведомления для новой почты) и работы носков отлично, еще лучше, чем vlc/cvlc (это заняло больше времени и звучало немного отличающимся небольшим щелчком по концу?).