在 Bash 的循环中生成时间戳时出现问题

Problem generating timestamps in a loop in Bash

当我运行命令时:

timestamp=$(date+"%s") ; echo "$timestamp"

没有错误。

然而,当我尝试 运行 循环时:

while [  $COUNTER -lt 10 ]; do  ts=$(date+"%s") ; echo "$ts" ; let COUNTER=COUNTER+1 ;  done  

"-bash: date+%s: command not found" 错误被抛出。为什么?

while [  $COUNTER -lt 10 ]; do  ts=$(date +"%s") ; echo "$ts" ; let COUNTER=COUNTER+1 ;  done

你需要写一个space$(date +"%s")

您必须在日期命令和所需格式之间添加 space,因为 linux man 页面中的日期语法描述为:

date [option] [+Format]

您的代码的解决方案:

while [  $COUNTER -lt 10 ]; do  ts=$(date +"%s") ; echo "$ts" ; let COUNTER=COUNTER+1 ;  done