linux创建月份脚本,Linux-Bash Shell脚本根据年份和月份创建子目录

说明:列表/home/foo/dirlist.txt包含/ tmp / a .. / tmp / z

目标:创建子目录,例如/ tmp / a / 2014/04,/ tmp / b / 2014/04 … / tmp / z / 2014/04

错误:仅在文件只有一个目录(例如/ tmp / a)时创建子目录

执行后,最终结果应为/ tmp / a / 2014/04.但是,当文件具有多个条目(例如/ tmp / a … / tmp / z)时,不会创建任何子目录*

我如何实现我的目标?在此先感谢您提供任何提示和指示.

## /home/foo/dirlist.txt contains /tmp/a /tmp/b .. /tmp/z

archdirs=`/usr/bin/cat "/home/foo/dirlist.txt"`

YYYY=`/usr/bin/date '+%Y'`

MM=`/usr/bin/date '+%m'`

for i in "${archdirs[@]}";

do

if [ ! -d "$i/${YYYY}/${MM}" ]; then

/usr/bin/mkdir -p "$i/${YYYY}/${MM}"

fi

done

解决方法:

请理解,这个答案不是一条鱼,而是一门钓鱼课.

首先使用一些打印语句进行调试,以查看数组迭代甚至尝试使用您认为正在使用的值.就像尝试打印一样,我什至都看过?那测试陈述呢,测试甚至可以通过? (为什么还要检查行是否存在?只是逃避错误?)

然后,如果这不是问题,则将其更深一层,依此类推.

如果我们不这样做,可能还有其他数十种可能导致此问题的可能性.

此时,您可能应该意识到问题与mkdir,年,月,aix或bash语法无关.

祝好运!

标签:aix,bash,shell,linux

来源: https://codeday.me/bug/20191121/2055337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值