I'm working on a bash script to store the difference of packages from day to day in a debian based system.
I am toying around with the code below to get the functionality down before I fine tune it and running into difficulty with the line
comm -1 -3 $DIR/$TODAY $DIR/$PREV > pkgs.log
It seems to be an issue with the variables as it works when I hardcode the file names and pkg.log contains the difference between the two. The variables work as expected when using the diff command so I'm not sure what the exact cause is.
#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
If anyone can help I would be very grateful.