每秒列出时间作为Bash脚本

时间:2010-05-02 03:31:08

标签: linux bash shell

第一次来到这里,因为我终于开始学习编程了。无论如何,我只是想在这里每秒打印一次纳秒的时间,我有这个:

#!/usr/bin/env bash

while true;
do
 date=(date +%N) ;
 echo $date ;
 sleep  1 ;
done

现在,这只是产生一个日期字符串,这不是我想要的。怎么了?我的学习相当混乱,所以如果真的很简单,我希望你能原谅我。此外,我确实设法很好地解决了这个问题:

while true ; do date +%N ; sleep 1 ; done

但这显然不适用于剧本?

编辑,如果有人看到这个:啊,这确实解决了我的错误。我注意到你没有添加;那是因为我只定义了一个变量吗?另外,你能解释一下$的作用吗?我以为是调用变量。而且我看到上面这行确实可以作为一个剧本;我原本预计日期的输出不会被放在屏幕上。

3 个答案:

答案 0 :(得分:5)

更改

date=(date +%N) ;

date=$(date +%N)

答案 1 :(得分:1)

此版本应该可以使用

#!/bin/bash

while true; do
 date=$(date +"%N")
 echo Current date is $date
 sleep 1
done

答案 2 :(得分:0)

您也可以将命令括在“`”(Backtick)之间。 例如:

date=`date +%N`

此致