【发布时间】:2017-02-11 17:16:54
【问题描述】:
我要运行一个 sh 文件:
#!/bin/bash
for f in !(*.sh); do
ffmpeg -i "$f" -vf yadif=0:-1 -threads 0 -c:v libx264 -pix_fmt yuv420p \
-r 29.97 -b:v 3000k -s 1280x720 -preset:v slow -profile:v Main \
-level 3.1 -bf 2 -movflags faststart /mnt/media/out-mp4/"${f%.mxf}.mp4"
rm $f
done
但是,我收到以下错误:
2: task1.sh: Syntax error: "(" unexpected
如果我直接在命令行上尝试,它会完美运行。
路径和权限已审核
知道会发生什么吗?
【问题讨论】:
-
rm应该在文件名参数周围使用引号,就像脚本的其余部分一样。通常,任何包含文件名的变量都需要用双引号引起来。这个问题不会出现在琐碎的文件名上,但生产代码需要处理任意文件名。
标签: linux bash ubuntu for-loop ffmpeg