Псевдоним Bash не работает, идентичная команда работает

Я создал команду 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"

Откроется страница использования проигрывателя.

Что здесь происходит? Я ошибаюсь, полагая, что псевдоним должен вести себя точно так же, как команда, введенная в командной строке?


Это было вызвано глупой ошибкой с моей стороны, но я оставляю это вопрос здесь, потому что кто-то другой может сделать то же самое.

0
задан 8 January 2018 в 15:51

0 ответов

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

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