mytime=$(date -d -5day +"%Y%m%d")
shell怎么打印5天前到30天前
输出这样的
20150502
20150501
20150430
20150429
.....
1
extreme 2015-05-07 22:59:23 +08:00 1
使用Bash Shell的for循环:
for (( i = 5 ; i != 31 ; i = ((${i} + 1)))) do date -d -${i}day +"%Y%m%d" done |
2
holinhot OP @extreme 怎么把循环后的定义到变量
timeee=20150429 timeee=20150428 timeee=20150427 然后好删除文件。 rm -rf 20150429 rm -rf 20150428 rm -rf 20150427 |
4
extreme 2015-05-08 00:08:30 +08:00
@holinhot 替换下do到done之间的命令就行了。
没必要加入到另一个变量吧: for (( i = 5 ; i != 31 ; i = ((${i} + 1)))) do rm -rf $(date -d -${i}day +"%Y%m%d") done |
6
holinhot OP @extreme 应该要加入另外变量。因为我从文本读取了变量
rm -rf servername1 /20150427 其中servername是从txt种读行取的。最终是 rm -rf servername1 /20150429 rm -rf servername2 /20150429 rm -rf servername3 /20150429 rm -rf servername4 /20150429 rm -rf servername1 /20150428 rm -rf servername2 /20150428 rm -rf servername3 /20150428 rm -rf servername4 /20150428 rm -rf servername1 /20150427 rm -rf servername2 /20150427 rm -rf servername3 /20150427 rm -rf servername4 /20150427 |
7
holinhot OP @extreme
for (( i = 5 ; i != 31 ; i = ((${i} + 1)))) do rm -rf $(date -d -${i}day +"%Y%m%d") done 这个我开始想到了 试了好像不成功 |