2016-05-15 69 views
1

我试图让这个bash脚本工作,但我很茫然。我有一个文本文件,它包含一行一行的帧号列表。 ffmpeg的报告错误:为什么我的bash脚本不工作?

Undefined constant or missing '(' in '$name)' 

脚本

#!/bin/bash 
source text.txt 
while read name 
do 
ffmpeg -i result.mp4 -vf "setpts=N+1,select='eq(n,\$name)'" -vframes 1 frame-$i.jpg 
done <text.txt 
+1

抱歉,\去之前, – Mulvya

+1

它不应该是'的ffmpeg -i result.mp4 -vf“setpts = N + 1,选择='EQ(N,$名称)'“”-vframes 1 frame- $ i.jpg'? – heemayl

+1

'eq(n,\ $ name)' - >'eq(n,\ $ {name})'并重试? –

回答

2

你逃避$之前变量名即$name,所以$name将字面上治疗无任何变量扩展正在做。

务必:

ffmpeg -i result.mp4 -vf "setpts=N+1,select='eq(n,$name)'" -vframes 1 frame-$i.jpg 
+0

谢谢。我运行脚本,一旦涉及到用。我确实尝试过,但不是运气。 – JulianJ

+0

@JulianJ这是一个不同的问题,我想..你可以问它作为一个新的问题,使这一个接受.. – heemayl