Таким образом, я сделал команду в ~ .bashrc использованием команды alias tunes='...'
. Таким образом, то, что я хочу, чтобы эта команда сделала, имеют одно музыкальное видео, открытое затем, после того как то видео закончено, открывают следующее видео в строке. Команда, которую я использую:
alias tunes='cd /path/; xdg-open musicvideo.wav; xdg-open musicvideo2.wav;...; cd'
и т.д. То, что это делает, только открывает последнее музыкальное видео затем, это заканчивается. Я попытался измениться ;
с &&
и это дает мне тот же результат. Какая-либо справка?Заранее спасибо.
Если бы xdg-open
сразу открывается и не ожидает, рассматривает использование подлинное имя аудиоплеера Вы используете (значение по умолчанию для Ubuntu было бы totem
) вместо xdg-open
, С другой стороны, что также может быть сделано, это:
xdg-open file.wav ; while pgrep -f "file.wav" >/dev/null ; do : ; sleep 1 ; done
Это, вероятно, было бы лучше в сценарии вместо псевдонима, таким образом, у Вас будет несколько строк. В основном здесь мы поместили некоторое время цикл, который блокирует нас от движения до следующего оператора, и мы неоднократно проверяем, существует ли процесс, который имеет file.wav
в его командной строке. Однажды нет никакого процесса как этот, можно перейти к следующей строке xdg-open
Похоже, что you’ve уже получил ответ на Ваш конкретный код, но I’m, задающийся вопросом почему you’re, не делающий это с некоторым плей-листом? Если you’re, пытающийся сделать этот псевдоним применимым к самому широкому диапазону сред it’s возможный, Вы могли бы столкнуться с некоторыми программами, что can’t интерпретируют файл плей-листа (например, mplayer требует -playlist
опция), но в большинстве случаев это должно работать.
формат M3U, который широко поддерживал, является простым текстовым файлом с одним файлом на строку, или с полным путем или просто с именем файла (предполагает, что файл находится в текущем каталоге). Это означает, что можно создать один с простой командой like†¦
ls *.wav > playlist.m3u
†¦ затем run†¦
[cd to the relevant directory]
xdg-open playlist.m3u
†¦ в псевдониме. Если you’re, делающий это в известной среде, хотя, it’s, вероятно, более надежный для запуска определенной программы, которую Вы знаете, поддерживает формат.
Проблема состоит в том, что Вы используете xdg-open
. Процесс умирает вскоре после того, как он называет реальное приложение (vlc, mplayer, и т.д.) и таким образом, следующая команда выполняется.
можно проверить, как это происходит, если Вы запускаете этот скрипт:
#!/bin/bash
xdg-open /path/to/video &
echo "xdg-open PID is $!."
while [ -e /proc/$! ]; do
echo "$! is alive."
sleep 1;
done
echo "$! is not alive anymore."
можно запустить медиаплеер непосредственно, например:
vlc /path/to/first/video && vlc /path/to/second/video