我想编写一个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
脚本没有刷新。它给出了正确的日期,但只有一次。我在做什么错了?
答案 0 :(得分:2)
该脚本在语法上无效。 while
-for
块没有do
或done
循环。添加循环将
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
命令的缩写。