gpt4 book ai didi

linux - bash shell 脚本根据年份和月份创建子目录

转载 作者:太空狗 更新时间:2023-10-29 11:09:09 26 4
gpt4 key购买 nike

描述:列表/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

最佳答案

请理解,这个答案不是鱼,而是钓鱼课。

首先使用一些打印语句对此进行调试,以查看数组迭代甚至尝试使用您认为它正在使用的值。在尝试打印 i 时,所有的 i 都看过了吗?测试语句呢,测试是否通过? (为什么还要检查该行是否存在?只是逃避错误?)

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

如果我们不这样做,还有许多其他可能导致问题的可能性。

此时您可能应该意识到问题与 mkdir、年、月、aix 或除您的 bash 语法之外的任何其他内容无关。

祝你好运!

关于linux - bash shell 脚本根据年份和月份创建子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22820550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com