shell写一个while循环语句,每隔n秒钟(shell变量可配置)输出当前时间(精确到毫秒,格式2022-01-01 23:00:00.000)和脚本已执行(同一行输出)
时间: 2023-02-08 18:15:54 浏览: 102
可以使用如下的代码实现:
```
#!/bin/bash
n=5 # 设置循环间隔时间为5秒
i=0 # 设置脚本已执行次数的计数器
while true; do
i=$((i+1)) # 每次循环累加1
now=$(date +"%Y-%m-%d %H:%M:%S.%3N") # 获取当前时间,精确到毫秒
echo -e "$now \t已执行次数: $i" # 输出当前时间和已执行次数
sleep $n # 等待 $n 秒
done
```
说明:
- `date` 命令用于获取当前时间, 通过格式化字符串 `%Y-%m-%d %H:%M:%S.%3N` 可以输出日期和时间, 并精确到毫秒.
- `echo -e` 命令用于输出字符串, `-e` 选项可以支持转义字符
- `sleep` 命令用于等待一段时间,单位秒
- `while true; do` 是一个无限循环,在每次循环中都会输出当前时间和已执行次数,直到脚本被终止
运行这个脚本,每隔n秒钟就会输出当前时间和已执行次数
注意:这个脚本需要在linux系统上运行。
相关问题
shell 写一个while循环语句,每隔n秒钟(shell变量可配置)输出当前时间(精确到毫秒)+脚本已执行
可以使用以下语句编写脚本:
```
#!/bin/bash
# 设置每次循环间隔时间
interval=5
while true
do
# 输出当前时间,精确到毫秒
date +%s%3N
# 打印执行信息
echo "脚本已执行"
# 暂停 $interval 秒
sleep $interval
done
```
第一行 `#!/bin/bash` 用于指定脚本使用 bash 程序来执行。
第3行设置了循环间隔时间(5s)。
第5行使用了 while true 循环, 表示无限循环。
第6行使用 date 命令输出当前时间, %s%3N表示秒后面加上毫秒。
第8行使用 echo 命令输出执行信息。
第9行使用 sleep 命令停顿指定时间(5s)
centos7 shell 输出当前时间并格式化为2022-01-01 10:10:10.000 格式,输出到 1.log
### 回答1:
在 CentOS 7 的 shell 中,可以使用 date 命令来输出当前时间并格式化为 "2022-01-01 10:10:10.000" 的格式。要将其输出到 "1.log" 文件中,可以使用以下命令:
```
date +"%Y-%m-%d %H:%M:%S.%3N" >> 1.log
```
这将在 1.log 文件中追加当前时间,并格式化为 "2022-01-01 10:10:10.000" 格式。
### 回答2:
要在CentOS 7的shell中以"2022-01-01 10:10:10.000"的格式输出当前时间,并将输出记录到1.log文件中,可以使用以下命令:
```shell
date +"%Y-%m-%d %H:%M:%S.%3N" >> 1.log
```
这个命令中,date命令用于获取当前时间,+"%Y-%m-%d %H:%M:%S.%3N"是日期格式化的模式。其中,%Y代表四位数的年份,%m代表月份,%d代表日期,%H代表小时(24小时制),%M代表分钟,%S代表秒,%3N代表毫秒。最后,>>操作符用于将输出追加到1.log文件中。
执行上述命令后,当前时间就会按照指定的格式输出,并将输出记录到1.log文件中。每次执行该命令,都会在1.log中添加一行当前时间的记录,格式为"2022-01-01 10:10:10.000"。
### 回答3:
在CentOS 7的shell中,可以使用以下命令输出当前时间并格式化为2022-01-01 10:10:10.000格式,并将输出结果保存到1.log文件中。
1. 使用date命令获取当前时间戳:date "+%Y-%m-%d %H:%M:%S.%3N"
- %Y表示年份的四位数
- %m表示月份的两位数
- %d表示日期的两位数
- %H表示小时的两位数
- %M表示分钟的两位数
- %S表示秒的两位数
- %3N表示毫秒的三位数
2. 将以上命令写入脚本文件,例如为get_time.sh。
3. 在shell中执行该脚本,并将输出结果重定向到1.log文件中:
- 执行命令"./get_time.sh > 1.log"
这样,当前时间就会被格式化为2022-01-01 10:10:10.000的形式,并输出到1.log文件中。