小编Mik*_*ike的帖子

bash 脚本 inotifywait 等待文件完全写入后再继续

我正在尝试设置一个监视脚本和一个 pdf 合并脚本的串联来检查我的扫描仪写入 pdf 的文件夹。第一个脚本的想法是监视文件夹,直到出现两个 pdf 文件,然后调用第二个脚本。现在的问题是 inotifywait 检测到文件何时创建并且按预期调用第二个脚本,但特别是对于较大的 pdf,这会导致失败,因为扫描仪可能仍会写入 pdf。我将 close_write 事件添加到 inotifywait 但我认为这会被忽略,因为 create 事件已经是 true。我添加了睡眠作为解决方法,但这不仅丑陋,而且在超过固定超时的更大文件上也会失败。检查两个文件是否已完全写入的最佳方法是什么?谢谢。

文件夹检查脚本:

#! /bin/bash
n=0
inotifywait -m -e create,close_write $1 | while read line
do
    n=$(find $1 -type f | wc -l);
    echo $n
    if [ "$n" -eq "2" ] ; then 
      echo "found $n files"
      sleep 5
      ./pdfMergeMove.sh $1 cleanup
      n=0
    fi;
done 
Run Code Online (Sandbox Code Playgroud)

pdf bash inotify

5
推荐指数
1
解决办法
5036
查看次数

onChange textarea检测和清除输入字段

当用户使用onchange事件处理程序更改textarea框的内容时,我试图清除表单中的输入字段.我不知道我的错误在哪里,为什么它不起作用.

这是我的代码示例:JSBin

function clear()
   {  
     document.getElementById('clearme').value= " " ;
     
   }
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="clearme" value="123" readonly>
<textarea type="text" id="test2" onChange="clear()">some&#10;text&#10;here</textarea>
Run Code Online (Sandbox Code Playgroud)

javascript textarea input onchange

3
推荐指数
1
解决办法
6144
查看次数

bash变量与ffmpeg循环循环

我写了一个skript,可以根据在时间戳上记录的视频快速创建简短的预览剪辑,我发现以后值得检查一下以进行剪切。我的带有时间戳的文件是这样写的

FILE_NAME1#MM:SS MM:SS
FILE_NAME2#MM:SS MM:SS MM:SS MM:SS
Run Code Online (Sandbox Code Playgroud)

例:

MAH01728#02:47 03:34 03:44 05:00 06:08 06:55
Run Code Online (Sandbox Code Playgroud)

该脚本如下所示:

#!/bin/bash
while read f
 do

 file=$(echo $f | cut -d"#" -f1)
 filename=${file}".MP4"
 timestamps=$(echo $f | cut -d"#" -f2)

for time in $timestamps 
 do 
  ffmpeg -ss 00:${time}.0 -i "orig/${filename}" -c copy -t 10 "preview/${file}_${time}.MP4"
 done
done < $1
Run Code Online (Sandbox Code Playgroud)

该脚本获得了我想要的预览的一半,另一方面,文件名被弄乱了,ffmpeg抱怨找不到该文件:

orig/714.MP4: No such file or directory
orig/00:58 01:25.MP4: No such file or directory
Run Code Online (Sandbox Code Playgroud)

因此,我修改了脚本以进行故障排除,并在ffmpeg命令前添加了回显-现在所有文件名都是正确的。我想念什么?

ffmpeg -ss 00:01:47.0 -i orig/MAH01714.MP4 -c copy -t 10 preview/MAH01714_01:47.MP4
ffmpeg -ss 00:02:00.0 …
Run Code Online (Sandbox Code Playgroud)

bash loops ffmpeg

3
推荐指数
1
解决办法
212
查看次数

标签 统计

bash ×2

ffmpeg ×1

inotify ×1

input ×1

javascript ×1

loops ×1

onchange ×1

pdf ×1

textarea ×1