我的/bin目录中有一个shell脚本,其中有一行:play applause.mp3。文件applause.mp3与可执行文件位于同一个目录中。
然而,play命令给出了错误play FAIL formats: can't open input file 'applause.mp3': No such file or directory。
如果我直接从/bin目录打开它,文件就会播放得很好。很明显,.mp3文件需要驻留在/bin目录之外的其他地方。bash去哪里找文件?
发布于 2016-02-22 00:24:30
Bash查找在PATH环境变量中指定的目录中执行的命令。
但是,在您的场景中,bash已经完成了它的工作,并运行了play命令。applause.mp3作为参数传递。完全取决于play命令如何解释它。
在一个命令采用文件名参数的常见场景中,它将解析从当前目录开始的路径(这就是在调用脚本之前将目录更改为/bin的原因)。
为了避免出现问题,您应该在参数中使用绝对路径(从/开始)。
https://unix.stackexchange.com/questions/264885
复制相似问题