Проблема подстановки команд, запутанная

Я пытаюсь, чтобы sox воспроизводил файл из пользовательского ввода. Для этого я настроил команду, подобную приведенной ниже:

$ play proc/$(read -n 1).wav

У меня есть файлы с 0.wav по 9.wav, расположенные в каталоге proc. Я могу сыграть одну из них, как в примере ниже:

$ play proc/4.wav

Однако, когда я пытаюсь сделать это с помощью пользовательского ввода, я нажимаю цифру 4, и вот что она выводит:

4play FAIL formats: can't open input file `proc/.wav': No such file or directory

Есть идеи? Я в замешательстве.

0
задан 29 September 2016 в 08:44

1 ответ

Я думаю, что проблема, с которой вы столкнулись, заключается в том, что команда bash read не записывает результат в стандартный вывод, она сохраняет результаты в переменных, именованных, переданных в качестве аргументов, или в переменной REPLY.

Так, например, я думаю, что вы хотите здесь что-то вроде:

read -n1 track
play "proc/$track.wav"

Вы можете увидеть все детали, набрав help read в bash.

0
ответ дан 29 September 2016 в 08:44

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

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