Я создал команду bash для передачи каждого файла .mp3 в папке в медиаплеер командной строки omxplayer. Он также устанавливает громкость проигрывателя и отбрасывает обратную связь от игрока:
for i in *.mp3; do omxplayer --vol -2000 "$i" > /dev/null; done
--vol -2000
устанавливает громкость.
Эта команда работает хорошо, поэтому я решил создать для нее псевдоним omxall:
alias omxall="for i in *.mp3; do omxplayer --vol -2000 > /dev/null "$i"; done"
Фактическая команда идентична, но она не работает так же. Первый правильно воспроизводит все файлы .mp3, а второй зависает в течение нескольких секунд, а затем завершается.
Обратите внимание: Я помещаю свои псевдонимы в ~/.bash_aliases
. У меня есть другие рабочие псевдонимы в том же файле, поэтому их расположение не является проблемой.
Теперь я понимаю, что /dev/null/
будет препятствовать устранению неполадок, подавляя всю другую полезную информацию, поэтому я попытался без нее:
for i in *.mp3; do omxplayer --vol -2000 "$i"; done
Это делает правильную работу.
alias omxall="for i in *.mp3; do omxplayer --vol -2000 "$i"; done"
Откроется страница использования проигрывателя.
Что здесь происходит? Я ошибаюсь, полагая, что псевдоним должен вести себя точно так же, как команда, введенная в командной строке?