Как заставить одну вещь открыть затем другого

Таким образом, я сделал команду в ~ .bashrc использованием команды alias tunes='...'. Таким образом, то, что я хочу, чтобы эта команда сделала, имеют одно музыкальное видео, открытое затем, после того как то видео закончено, открывают следующее видео в строке. Команда, которую я использую:

alias tunes='cd /path/; xdg-open musicvideo.wav; xdg-open musicvideo2.wav;...; cd'

и т.д. То, что это делает, только открывает последнее музыкальное видео затем, это заканчивается. Я попытался измениться ; с && и это дает мне тот же результат. Какая-либо справка?Заранее спасибо.

4
задан 21 February 2017 в 05:17

3 ответа

Если бы 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

4
ответ дан 1 December 2019 в 09:03

Похоже, что 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, вероятно, более надежный для запуска определенной программы, которую Вы знаете, поддерживает формат.

3
ответ дан 1 December 2019 в 09:03

Проблема состоит в том, что Вы используете 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
2
ответ дан 1 December 2019 в 09:03

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

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