Итак, я сделал команду в ~ .bashrc, используя команду alias tunes='...'. Поэтому я хочу, чтобы эта команда выполняла одно открытое музыкальное видео, а затем, когда это видео было открыто, раскройте следующее видео в строке. Используемая мной команда:
alias tunes='cd /path/; xdg-open musicvideo.wav; xdg-open musicvideo2.wav;...; cd'
и т. Д. То, что он делает, это только открытие последнего музыкального видео, после чего оно заканчивается. Я попытался изменить ; на &&, и он дает мне тот же результат. Любая помощь? Заранее спасибо.
Похоже, у вас уже есть ответ на ваш конкретный код, но мне интересно, почему вы не делаете этого с каким-то плейлистом? Если вы пытаетесь сделать этот псевдоним применимым к самому широкому диапазону сред, вы можете запустить некоторые программы, которые не могут интерпретировать файл списка воспроизведения (например, mplayer требует вариант -playlist), но в большинстве случаев он должен работать .
Формат M3U, который широко поддерживается, представляет собой простой текстовый файл с одним файлом на строку, либо с полным путем, либо просто с именем файла (предполагается, что файл находится в текущем каталоге). Это означает, что вы можете создать его с помощью простой команды, например ...
ls *.wav > playlist.m3u
... затем запустить ...
[cd to the relevant directory]
xdg-open playlist.m3u
... в вашем псевдониме. Если вы делаете это в известной среде, вероятно, более надежно запускать определенную программу, которая, как вы знаете, поддерживает формат.
Проблема в том, что вы используете 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