我正在尝试让 sox 根据用户输入播放文件。为此,我设置了如下命令:
$ 播放 proc/$(read -n 1).wav
我在目录 proc 中拥有文件 0.wav 到 9.wav。我可以像以下示例一样播放其中一个文件:
$播放proc/4.wav
但是,当我尝试通过用户输入来执行此操作时,我按下数字 4,它输出的内容如下:
4play FAIL 格式:无法打开输入文件“proc/.wav”:没有此文件或目录
有什么想法吗?我很困惑。
答案1
我认为您遇到的问题是 bash read 命令不会将结果写入 stdout,而是将结果存储在变量中,无论是作为参数传递的命名变量,还是 REPLY 变量中。
举例来说,我认为你想要的是类似这样的东西:
read -n1 track
play "proc/$track.wav"
您可以通过输入help read
bash 来查看所有详细信息。