Bash脚本,循环不刷新txt.file

时间:2018-07-18 00:59:21

标签: bash

我想编写一个bash脚本,它将在已登录用户的主目录中创建文件time.txt,在其中放置时间并每 n 秒更新一次,直到脚本已停止。

到目前为止,我有:

#! /bin/bash

do
echo "Current time" > time.txt
chmod +rwx "time.txt"

time=$(date + "%T")
echo "$time" >> time.txt

sleep 2;

watch -n 1 head -n2 time.txt.

done

脚本没有刷新。它给出了正确的日期,但只有一次。我在做什么错了?

2 个答案:

答案 0 :(得分:2)

该脚本在语法上无效。 while-for块没有dodone循环。添加循环将

while true; do
    date +%T >> time.txt
    sleep 2
done

您将希望摆脱循环内的watch调用。 watch本身是一个永无休止的循环,它将阻止连续的迭代运行。

答案 1 :(得分:0)

您应该这样做:

while :; do
    # I'm assuming you want to see the date displayed on the terminal too.
    echo -e "Current time.\n$(date +%T)" | tee time.txt | sed '/Current time/d'
    sleep 2
done

:true命令的缩写。