gpt4 book ai didi

bash - 为什么这个 while 循环在第一个循环之后不执行?

转载 作者:行者123 更新时间:2023-11-29 09:41:53 25 4
gpt4 key购买 nike

我需要一个脚本来每 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

最佳答案

每次循环运行时,您都应该重新分配 ${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

注意:您的触摸命令正在运行,它只是应用了相同的文件名。希望这有帮助!

关于bash - 为什么这个 while 循环在第一个循环之后不执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56859035/

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