0
我有一个名为/ folder/files/$ SET_DATE /的文件夹中有三个文件,但根据日期可能有更多。Bash脚本。如果file.prt存在,则创建.info.file.prt。
Ben.prt
.info.Ben.prt
Jim.prt
John.prt
我想创建一个.INFO。*文件夹中的每个文件.PRT PRT文件,但如果已经存在,我不想创建两个。
一个懒惰会给我留下以下内容。
服务器奔10:30 <〜> LL-LART
.info.Ben.prt
.info.Jim.prt
.info.John.prt
Ben.prt
Jim.prt
John.prt
在.INFO的值。* foles将在.PRT文件字符的个数。
所以我有以下几点。
SET_DATE= cat /tmp/date.txt
FILES="/folder/folder/folder/$DP_DATE/.info.*"
FILESF="/folder/folder/folder/$DP_DATE/"
FILESP="*.prt"
if [ ! -e $FILESF".info."$FILESP ]; then
echo 0 >> $FILESF.info.$FILESP
fi
虽然现在很难找到我的头。
任何向正确的方向发展都将是非常明智的。
实际上,这不会从外部目录工作,你知道我怎么能从一个不同的文件夹运行此文件夹中的文件运行? –
最简单的方法是将想要操作的目录名称作为参数传递,并让脚本将目录更改为该位置。第一行,就在'for'循环之上,可以是'cd $ {1: - “。”} ||退出1',意思是改变到由第一个参数指定的目录或当前目录。这避免了必须将文件名与路径名分开。另一种选择是将文件的名称作为命令行参数进行检查。这样做虽然需要将名称拆分为目录(路径)和文件名。可以,但是提琴。 –