#! /usr/bin/bash
Folders='/home/usr/Desktop/SEV'
for i in `ls $Folders` ; do
for j in `ls ${i}`; do
./create-vod-hls.sh
./watermark.sh "$i/$j" "$i/${j/.mp4/_w.mp4}" && ./gif_creator.sh "$i/$j" "$i/${j/_w.mp4/.gif}"
done;
done我希望gif创建者脚本使用水印脚本结果。水标记脚本创建一个有水印的视频,而gif创建者脚本创建gifs。当我运行这段代码时,gif创建者脚本会覆盖有水印的视频,并从非水印视频中创建gifs。如何更改此脚本,以便在循环运行水印脚本之后,它将运行水印脚本结果的gif创建者脚本。
发布于 2022-11-17 03:53:10
您的问题是命令的排序。
线
./watermark.sh "$i/$j" "$i/${j/.mp4/_w.mp4}" && ./gif_creator.sh "$i/$j" "$i/${j/_w.mp4/.gif}"应该写成
./watermark.sh "$i/$j" "$i/${j/.mp4/_w.mp4}"
./gif_creator.sh "$i/$j" "$i/${j/_w.mp4/.gif}"您使用的表单允许shell同时在两个部分附近启动。此外,在脚本中使用"&&“也没有很好的理由。
我推荐的表单确保第一部分完成,在启动生成之前。
https://stackoverflow.com/questions/74423125
复制相似问题