我正在尝试为eact.prt文件创建一个.info文件。
但我需要从不同的目录进行ir,每次都需要指向一个新的目录。
到目前为止,我有
#!/bin/bash
DP_DATE= cat /tmp/dp_date.txt
FOLDER= "/transfer/report_archive/preprod/$DP_DATE/"
for f in $FOLDER
do
for file in *.prt
do
[ -f ".info.$file" ] || wc -c < "$file" >> ".info.$file"
done
done
我不确定这是否可行!
如有任何帮助,将不胜感激
分配中=
之后不能有空格。要分配命令的输出,必须使用$(...)
或backticks对其进行包装。
要处理另一个目录中的文件,最简单的方法是在处理之前将cd
发送到该目录。我在循环中的子shell中进行处理,这样在处理下一个目录之前,它将返回到原始目录。
#!/bin/bash
DP_DATE=$(cat /tmp/dp_date.txt)
FOLDER="/transfer/report_archive/preprod/$DP_DATE/"
for f in $FOLDER
do ( # Subshell so cd is temporary
cd "$f"
for file in *.prt
do
[ -f ".info.$file" ] || wc -c < "$file" >> ".info.$file"
done
)
done
您必须在$(
和)
:中包装命令替换
DP_DATE=$(cat /tmp/dp_date.txt)
等号后的空格将导致一个空变量,并试图执行第二个参数:
FOLDER="/transfer/report_archive/preprod/$DP_DATE/"