目录
使用while循环,每隔一秒钟执行一次
sleep 1 ==》暂停1秒钟
1.实现shell编程实现
【具体】如何实现每秒钟新建一个文件夹,文件夹的名字里包含时间,精确到秒
文件夹新建的路径在/root/lianxi/test4
文件夹的名字里必须包含lihua
新建文件夹的数量都需要记录到/root/lianxi/test4/num.log里
脚本的名字create_dir_v2.sh存放在/root/lianxi
[root@localhost lianxi]# vim create_dir_v2.sh
[root@localhost lianxi]# cat create_dir_v2.sh
#!/bin/bash
#新建test目录
mkdir -p /root/lianxi/test
while true:
do
mkdir /root/lianxi/test/lihua$(date +%Y%m%d%H%M%S)
sleep 1 #暂停1秒
done
[root@localhost lianxi]# bash create_dir_v2.sh
#希望得到输出
[root@localhost lianxi]# vim create_dir_v2.sh
[root@localhost lianxi]# cat create_dir_v2.sh
#!/bin/bash
#新建test目录
mkdir -p /root/lianxi/test
#num变量的初始值
num=1
while true:
do
mkdir /root/lianxi/test/lihua$(date +%Y%m%d%H%M%S)
sleep 1 #暂停1秒
echo $((num++)) #num++等同于num=num+1
done
[root@localhost lianxi]# bash create_dir_v2.sh
1
2
3
4
5
^C
#最终版本
[root@localhost lianxi]# vim create_dir_v2.sh
[root@localhost lianxi]# cat create_dir_v2.sh
#!/bin/bash
#新建test目录
mkdir -p /root/lianxi/test
#num变量的初始值
num=1
while true:
do
mkdir /root/lianxi/test/lihua$(date +%Y%m%d%H%M%S)
sleep 1 #暂停1秒
#记录已经创建了多少个文件夹
echo $((num++)) >/root/lianxi/test/num.log #num++等同于num=num+1
done
[root@localhost lianxi]# bash create_dir_v2.sh &
[1] 12531
[root@localhost lianxi]# jobs
[1]+ 运行中 bash create_dir_v2.sh &
【复制标签查看效果】
[root@localhost test]# ls
lihua20220317201753 lihua20220317201755
lihua20220317201754 lihua20220317201756
[root@localhost test]# ls
lihua20220317201753 lihua20220317201755 lihua20220317201757
lihua20220317201754 lihua20220317201756
[root@localhost test]# ls
lihua20220317201753 lihua20220317201755 lihua20220317201757
lihua20220317201754 lihua20220317201756 lihua20220317201758
#最终版本的输出
[root@localhost test]# ls
lihua20220317203112 lihua20220317203118 lihua20220317203124
lihua20220317203113 lihua20220317203119 lihua20220317203125
lihua20220317203114 lihua20220317203120 lihua20220317203126
lihua20220317203115 lihua20220317203121 num.log
lihua20220317203116 lihua20220317203122
lihua20220317203117 lihua20220317203123
[root@localhost test]# cat num.log
18
2 python编程实现
【具体】如何实现每秒钟新建一个文件夹,文件夹的名字里包含时间,精确到秒
文件夹新建的路径在/root/lianxi/test4
文件夹的名字里必须包含lihua
新建文件夹的数量都需要记录到/root/lianxi/test4/num.log里
脚本的名字create_dir_v4.py存放在/root/lianxi
【需求分析】
- python里去新建一个文件夹 ==》库:os或subprocess
os:operating system 操作系统。对操作系统进行操作的库:新建文件和文件夹,复制、删除等操作。
subprocess库:用来执行Linux命令
- python如何得到当前的时间 ==》库:datetime
- python里实现间隔1秒 ==》库:time
- python里文件IO ==》write()
【功能了解】
[root@localhost sanchuang]# python3
>>> import os
>>> os.mkdir("liuxiang")
>>> os.getcwd()
'/root/lianxi/sanchuang'
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2022, 3, 21, 18, 22, 17, 759731)
>>> ctime = datetime.datetime.now()
#按照某种格式输出
>>> ctime.__format__('%Y%m%d%H%M%S')
'20220321182233'
>>> import time
#暂停一秒
>>> time.sleep(1)
#打开文件,并写入,w为覆盖写(清空之前的内容)
>>> f = open("num.log", "w")
>>> num = 10
# 写入并换行
>>> f.write(str(num)+"\n")
3
#关闭文件
>>> f.close()
【脚本】
[root@localhost sanchuang]# cat create_dir_v4.py
#!/usr/bin/python3
# 导入库
import os
import time
import datetime
# 判断/root/lianxi/test4文件夹是否存在
if not os.path.exists("/root/lianxi/test4"):
#如果不存在就新建文件夹
os.mkdir("/root/lianxi/test4")
# 切换路径到/root/lianxi/test4
os.chdir("/root/lianxi/test4")
num = 0
# 每一秒新建一个文件夹
while True:
# 获得当前时间
ctime = datetime.datetime.now().__format__("%Y%m%d%H%M%S")
# 拼接文件名 sanchuang+时间
filename = f"sanchuang{ctime}"
# 创建文件夹
os.mkdir(filename)
# 暂停一秒
time.sleep(1)
# 统计新建文件夹的数量
num = num + 1
# 写到文件里/root/lianxi/test4
with open("/root/lianxi/test4/num.log", "w") as f:
f.write(f"{num}\n")