comm和变量不重定向到文件

时间:2013-12-03 23:55:15

标签: bash variables redirect comm

我正在使用bash脚本在基于debian的系统中每天存储包的差异。

我正在使用下面的代码来解决功能问题,然后再对其进行微调并遇到线路问题

comm -1 -3  $DIR/$TODAY  $DIR/$PREV  > pkgs.log

这似乎是变量的问题,因为它在我对文件名进行硬编码时起作用,而pkg.log包含两者之间的差异。使用diff命令时,变量按预期工作,所以我不确定究竟是什么原因。

#directory where lists will reside
DIR=".pkgLists"

#create package dir if it does not exist
if [ ! -d $DIR ]; then
        mkdir $DIR
fi

#previous list of packages  
#this needs to be updated
#for now it serves for testing purposes
PREV="$(ls -1t $DIR | head -n 1)"

#get todays date , it will be used for the file name
TODAY="$(date +%d-%m-%y)_installed_pkgs.list"



#get installed packeges and write sorted output to file
dpkg --get-selections | sort > $DIR/$TODAY


#check the difference between todays file and the previous ones 

# this command works fine when I hardcode the names but not with the variables
# which work fine with the diff command below
# pkgs.log is always empty when I use the variables
comm -1 -3  $DIR/$TODAY  $DIR/$PREV  > pkgs.log

#this command works with the variables
# pkgs2.log always contains the expected information
diff  $DIR/$TODAY $DIR/$PREV  > pkgs2.log

如果有人可以提供帮助,我将非常感激。

0 个答案:

没有答案