我使用iwatch
来监控目录中的更改 - 只要将新视频文件添加到目录中,我就会抓取该文件并使用ffmpeg添加叠加声音。这是脚本:
iwatch -e close_write -c "/root/bin/ffmpeg -i %f -i /var/www/video/sound.mp3 -map 0 -map 1 -codec copy -shortest /var/www/new/video/${%f:15}" /var/www/video
但我有一个问题。我将新创建的文件移动到另一个目录,我需要使用相同的文件名保存它,但iwatch
只有%f
变量,它返回完整路径。知道路径的第一部分始终是"/var/www/video/"
,我可以使用${%f:15}
来获取带有文件名的子字符串。
但是下面的脚本不起作用 - bash说"bad substitution"
。所以问题出在这里 - 当我尝试将文件移动到新目录时:
/var/www/new/video/${%f:15}
什么是正确的语法,实现目标的方法?