gpt4 book ai didi

bash - shell 脚本 : unexpected token ´if"

转载 作者:行者123 更新时间:2023-12-04 19:00:17 25 4
gpt4 key购买 nike

免责声明:我只是一个在需要时用谷歌搜索他大部分知识的人,可能根本没有凝聚力。对此提前表示抱歉。

我正在我的 Ubuntu 18.04 服务器上编写一个小脚本,它应该运行一个循环来将原始 DVR 文件编码为易于处理的 mp4。这个“硬”部分已经可以正常工作了,我只是想获得一个干净的脚本,让它在整个小时内运行。不幸的是,无论出于何种原因,bash 都不接受我的 if 语句。

我试过dos2unix ,分号,空格,制表符,if语句前后的意图,但没有任何效果。我清理了几乎所有的谷歌结果和stackoverflow-posts,但没有任何效果。我检查了可能破坏脚本的隐藏字符。仍然是错误。

在以下脚本中,XXX 是私有(private)内容的占位符。这些线路已经工作了。

    #!/bin/bash
for file in $(find /var/www/vhosts/XXXXXX/* -name "*.h264");
if [ -z "$file" ]
then
echo "No new h264-files found. Exiting."; break
fi

do
echo "H264-files found. Calling ffmpeg for conversion to mp4."
ffmpeg -y -i "$file" -c:v libx264 -preset veryfast -crf 26 -an -sn "${file/h264/mp4}"
echo "Ffmpeg is finished."
#rm "$file" disabled until scripts works perfectly and is callable from plesk.
echo "All new files converted. Refreshing XXXXXcloud files."
sudo -u XXXX php /var/www/vhosts/XXXXX
echo "Script done."
done

我不断收到以下信息:
    ffmpeg_transcode_h264tomp4.sh: line 3: syntax error near unexpected token `if'
ffmpeg_transcode_h264tomp4.sh: line 3: `if [ -z "$file" ]'

最佳答案

使用 ifne util以及来自 Charles Duffy 的一些建议,这应该符合规范:

find /var/www/vhosts/XXXXXX/* -name "*.h264" -print0 |
ifne -n echo "No new h264-files found. Exiting." |
while IFS= read -r -d '' file ; do
# ... more code goes here...
done

关于bash - shell 脚本 : unexpected token ´if",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56550501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com