我需要一个脚本来每x秒制作一个屏幕截图。在代码中,为了简单起见,我使用触摸。
运行代码时,将运行第一次触摸(屏幕截图1)并创建一个文件。但等待5秒钟后,它回显屏幕截图2,但触摸未运行。因为没有文件被创建。我不知道为什么会这样。
#!/usr/bin/env bash
file=$(date +%Y-%m-%d.%H:%M:%S)
x=1
while true
do
echo "screenshot $x"
touch $file.jpg
sleep 1
x=$[$x+1]
done
答案 0 :(得分:5)
每次循环运行时,您都应该重新分配$ {file}!您是在循环外进行分配,因此每次都使用相同的文件名!
x=1
while true; do
# Assign a new name (with a new timestamp) to $file, and a file
# with a new name will be created!
file=$(date +%Y-%m-%d.%H:%M:%S)
echo "screenshot $x"
touch $file.jpg
sleep 1
x=$(( x + 1 ))
done
注意:您的触摸命令正在运行,只是应用了相同的文件名。希望这会有所帮助!