我想知道如何修改这段代码。
ls
while [ 1 > 0 ]
do
fc -s
sleep 1
done
对于fc -s
,可以参考这个问题了解详情。
我的问题如下:
- 它将如何运行?如果您将其命名为
test.sh
. - 如果我想
fc -s
代表第一行ls
,我该如何修改它?也就是说,我想运行ls
然后睡眠一秒钟,然后ls
,然后睡眠一秒钟,...当然ls
可以通过其他命令放置。
答案1
你为什么不使用 watch 命令,它正是你想要的?这是手册中所说的:
watch - 定期执行程序,全屏显示输出
每秒运行该命令:
watch -n 1 command
答案2
您可以尝试以下方法:
$ cat script.sh
while sleep 1
do
eval "$@"
done
$ ls
$ sh script.sh !!
该脚本将一遍又一遍地运行传递给它的命令。!!
计算出最后一个命令。
如果您希望该命令成为脚本的一部分并且不想在多个位置键入它,请尝试以下操作:
$ cat script.sh
cmd=ls
while sleep 1
do
eval "$cmd"
done
$ sh script.sh