shell 写一个while循环语句,每隔n秒钟(shell变量可配置)输出当前时间(精确到毫秒)+脚本已执行
时间: 2023-02-08 14:15:54 浏览: 70
可以使用以下语句编写脚本:
```
#!/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)
相关问题
shell写一个while循环语句,每隔n秒钟(shell变量可配置)输出当前时间(精确到毫秒,格式2022-01-01 23:00:00.000)和脚本已执行(同一行输出)
可以使用如下的代码实现:
```
#!/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脚本计算函数运行时间,精确到毫秒
下面是一个简单的shell脚本,可以计算函数运行时间,精确到毫秒:
```bash
#!/bin/bash
# 定义需要计时的函数
function my_function() {
sleep 1
}
# 记录开始时间
start_time=$(date +%s%N)
# 调用函数
my_function
# 记录结束时间
end_time=$(date +%s%N)
# 计算函数运行时间,精确到毫秒
duration=$(expr $end_time - $start_time)
duration=$(expr $duration / 1000000)
echo "函数运行时间:$duration 毫秒"
```
在这个脚本中,我们首先定义了需要计时的函数 `my_function()`,然后使用 `date +%s%N` 命令记录开始时间和结束时间,并计算两者之间的差值。最后,我们将差值除以 1000000,得到函数运行时间,精确到毫秒。